首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
MySQL/MariaDB数据库的存储过程
】的更多相关文章
MySQL/MariaDB数据库的存储过程
MySQL/MariaDB数据库的存储过程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.存储过程概述 1>.存储过程优势 存储过程把经常使用的SQL语句或业务逻辑封装起来,预编译保存在数据库中,当需要时从数据库中直接调用,省去了编译的过程 提高了运行速度 同时降低网络数据传输量 2>.存储过程与自定义函数的区别 存储过程实现的过程要复杂一些,而函数的针对性较强 存储过程可以有多个返回值,而自定义函数只有一个返回值 存储过程一般独立的来执行,而函数往往是作为其他SQL语…
MySQL/MariaDB数据库的性能测试
MySQL/MariaDB数据库的性能测试 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数据库服务衡量指标 qps: query per second(每秒支持多少查询) tps: transaction per second(每秒支持多少个事务性能) 二.压力测试工具 mysqlslap: Mariadb自带的测试脚本 Sysbench:功能强大 https://github.com/akopytov/sysbench tpcc-mysql MySQL Benc…
MySQL/MariaDB数据库的主从复制
MySQL/MariaDB数据库的主从复制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL复制概述 1>.传统扩展方式 垂直扩展(也叫向上扩展,Sacle Up): 在单节点通过提升服务器硬件性能以达到提升软件运行效率的问题,比如提升CPU,存储,内存,网络的性能. 在很多企业里面,MySQL数据库存放了一些重要的数据,当你的企业服务访问量越来越大,单个服务器性能以及很难达到要求了,一个单服务器的性能终究有限,通常在生产环境中一个数据库它的并发连接数能达到…
MySQL/MariaDB数据库的mysqldump工具备份还原实战
MySQL/MariaDB数据库的mysqldump工具备份还原实战 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.mysqldump概述 1>.逻辑备份工具 mysqldump: 客户端命令,通过mysql协议连接至mysql服务器进行备份.因此备份过程中需要MySQL数据库实例必须处于可访问状态. 博主推荐阅读:https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html mydumper: 博主推荐阅读:https:…
MySQL/MariaDB数据库的冷备份和还原
MySQL/MariaDB数据库的冷备份和还原 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL/MariaDB数据库的备份和还原概述 1>.为什么要备份 为了预防灾难恢复:硬件故障.软件故障.自然灾害.黑客攻击.误操作测试等数据丢失场景. 2>.备份注意要点 能容忍最多丢失多少数据 恢复数据需要在多长时间内完成 需要恢复哪些数据 3>.还原要点 做还原测试,用于测试备份的可用性 还原演练(备份和备份成功是两码事!一定要进行还原演练!!!最好有相关的操作…
MySQL/MariaDB数据库的索引工作原理和优化
MySQL/MariaDB数据库的索引工作原理和优化 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 实际工作中索引这个技术是影响服务器性能一个非常重要的指标,因此我们得花时间去了解一下索引的相关特性.索引是一把双刃剑用得好可以快速查询数据,用得不好数据库查询速度不仅慢还降低服务器性能,浪费磁盘空间. 一.索引概述 1>.什么是索引 索引是特殊数据结构,定义在查找时作为查找条件的字段,在MySQL又称为键key,索引通过存储引擎实现. 索引可以看作是一本字典的目录,为了快速检…
MySQL/MariaDB数据库的查询缓存优化
MySQL/MariaDB数据库的查询缓存优化 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL架构 Connectors(MySQL对外提供的交互接口,API): Connectors组件,是MySQL向外提供的交互组件,如Python,Golang,Java,C++,Php等语言可以通过该组件来操作SQL语句,实现与SQL的交互. Connection Pool(连接池组件): 负责监听对客户端向MySQL Server端的各种请求,接收请求,转发请求到目标…
MySQL/MariaDB数据库的用户和权限管理
MySQL/MariaDB数据库的用户和权限管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.元数据数据库(mysql) 系统授权表(均在mysql数据库中): db host user: 存放用户的表. columns_priv tables_priv procs_priv proxies_priv MariaDB [yinzhengjie]> SELECT user,host FROM mysql.user; #查看MySQL实例安全初始化后的默认用户 +-----…
MySQL/MariaDB数据库的Galera高可用性集群实战
MySQL/MariaDB数据库的Galera高可用性集群实战 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Galera Cluster概述 1>.什么是Galera Cluster 集成了Galera插件的MySQL集群,是一种新型的,数据不共享的,高度冗余的高可用方案,目前Galera Cluster有两个版本,分别是Percona Xtradb Cluster及MariaDB Cluster,Galera本身是具有多主特性的,即采用multi-master的…
MySQL/MariaDB数据库的MHA实现高可用实战
MySQL/MariaDB数据库的MHA实现高可用实战 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL高可用常见的解决方案 1>.Multi-Master Replication Manager for MySQL(简称MMM) Mysql主主复制管理器是一套灵活的脚本程序,基于perl实现,用来对mysql replication进行监控和故障迁移,并能管理mysql Master-Master复制的配置(同一时间只有一个节点是可写的) 博主推荐阅读:…
MySQL/MariaDB数据库的PROXY实现读写分离
MySQL/MariaDB数据库的PROXY实现读写分离 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.ProxySQL概述 1>.各家互联网公司读写分离的解决方案 mysql-proxy:Oracle https://downloads.mysql.com/archives/proxy/ Atlas:Qihoo https://github.com/Qihoo360/Atlas/blob/master/README_ZH.md dbproxy:美团 https://g…
MySQL/MariaDB数据库的复制监控和维护
MySQL/MariaDB数据库的复制监控和维护 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.清理日志 1>.删除指定日志文件名称之前的日志(也可用基于时间) MariaDB [yinzhengjie]> SHOW BINARY LOGS; +------------------+-----------+ | Log_name | File_size | +------------------+-----------+ | mysql-bin. | | | my…
MySQL/MariaDB数据库的复制加密
MySQL/MariaDB数据库的复制加密 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL的安全问题 1>.基于SSL复制 在默认的主从复制过程或远程连接到MySQL/MariaDB所有的链接通信中的数据都是明文的,外网里访问数据或则复制,存在安全隐患.通过SSL/TLS加密的方式进行复制的方法,来进一步提高数据的安全性 2>. 配置实现步骤概述 主服务器开启SSL:[mysqld] 加一行ssl 主服务器配置证书和私钥:并且创建一个要求必须使用SSL连…
MySQL/MariaDB数据库的复制过滤器
MySQL/MariaDB数据库的复制过滤器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.复制过滤器概述 1>.复制器过滤器功能 让从节点仅复制指定的数据库,或指定数据库的指定表. 2>.两种实现方式 方案一: 主服务器仅向二进制日志中记录与特定数据库相关的事件 此项和binlog_format相关,详情请参考官网说明:https://mariadb.com/kb/en/library/mysqld-options/#-binlog-ignore-db binl…
MySQL/MariaDB数据库的半同步复制
MySQL/MariaDB数据库的半同步复制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL半同步复制概述 1>.MySQL默认的异步复制 默认情况下,MySQL的复制功能是异步的,异步复制可以提供最佳的性能,主库把binlog日志发送给从库即结束,并不验证从库是否接收完毕. 这意味着当主服务器或从服务器端发生故障时,有可能从服务器没有接收到主服务器发送过来的binlog日志,这就会造成主服务器和从服务器的数据不一致,甚至在恢复时造成数据的丢失的风险. 2…
MySQL/MariaDB数据库的主主复制
MySQL/MariaDB数据库的主主复制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.主主复制概述 1>.什么是主主复制 所谓的主主复制,说白了就是两台节点互为主从关系. 2>.主主复制考虑要点 由于主主复制,2个MySQL实例均可以进行写操作,需要考虑客户端在Innodb存储引擎中对同一行的操作,以及自动增长id的关系. 3>.主主复制的缺点 由于2个节点都可以进行写操作,很容易产生数据不一致的问题,因此生产环境中咱们得慎用呀! 一般情况下主从复制就够…
MySQL/MariaDB数据库的主从级联复制
MySQL/MariaDB数据库的主从级联复制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.主从复制类型概述 1>.主从复制 博主推荐阅读: https://www.cnblogs.com/yinzhengjie/p/11816066.html 2>.一主多从 其实就是重复主从复制的步骤即可.一个master节点多个slave节点,此时多个slave节点同时同步master节点. 3>.级联复制 在一主多从的架构上稍作改进,依旧是一个master节点,指定…
MySQL/MariaDB数据库的各种日志管理
MySQL/MariaDB数据库的各种日志管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.事务日志 (transaction log) 1>.Innodb事务日志相关配置 MariaDB [yinzhengjie]> SHOW VARIABLES LIKE '%innodb_log%'; +-------------------------------+------------+ | Variable_name | Value | +---------------…
MySQL/MariaDB数据库的事务和隔离级别
MySQL/MariaDB数据库的事务和隔离级别 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.事务概述 1>.事务Transactions 一组原子性的SQL语句,或一个独立工作单元. 2>.事务日志 由于直接对源表进行修改当服务器突然掉电可能会导致源表数据被损坏,因此可以将修改先记录事务信息,后根据事务日志信息再对源表实现undo,redo等故障恢复功能 redo: 将事务日志中已经commit的事务进行复现操作,即对源表进行修改. undo: 将事务日志中未…
MySQL/MariaDB数据库的并发控制
MySQL/MariaDB数据库的并发控制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.并发控制概述 1>.什么是并发控制 MySQL是一个服务器级别的数据库,它通常放在网络上有很多用户并发访问的,因此并发控制很关键. 2>.锁粒度 表级锁(MyISAM和Innodb都支持) 行级锁(仅Innodb支持,MyISAM不支持) 3>.锁 读锁: 共享锁,只读不可写(包括当前事务) ,多个读互不阻塞 写锁: 独占锁,排它锁,写锁会阻塞其它事务(不包括当前事务)的读…
MySQL/MariaDB数据库的服务器配置
MySQL/MariaDB数据库的服务器配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL中的系统数据库 1>.mysql数据库 是mysql的核心数据库,类似于Sql Server中的master库,主要负责存储数据库的用户.权限设置.关键字等mysql自己需要使用的控制和管理信息 2>.performance_schema数据库 MySQL .5开始新增的数据库,主要用于收集数据库服务器性能参数,库里表的存储引擎均为PERFORMANCE_SCHEMA,…
MySQL/MariaDB数据库的存储引擎
MySQL/MariaDB数据库的存储引擎 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL体系结构 连接管理模块: 负责接收远程用户的连接. 线程管理模块: 维护一个线程池,通过连接管理模块接入的连接会在线程池中分配一个空闲线程去响应,当用户端口连接后线程资源会被回收(并不会被销毁),即重新放回线程池. 用户管理: 负责验证用户是否合法. 命名分发器: 负责分发命令到相应模块并记录日志信息. 查询缓存模块: 负责缓存曾经执行SQL的返回结果.当下次查询到与之…
MySQL/MariaDB数据库的触发器
MySQL/MariaDB数据库的触发器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.触发器概述 1>.什么是触发器 触发器的执行不是由程序调用,也不是由手工启动,而是由事件来触发.激活从而实现执行.= 2>.创建触发器帮助信息 MariaDB [yinzhengjie]> HELP CREATE TRIGGER Name: 'CREATE TRIGGER' Description: Syntax: CREATE [DEFINER = { user | CURR…
MySQL/MariaDB数据库的函数
MySQL/MariaDB数据库的函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. MySQL/MariaDB数据库的函数分为系统函数和用户自定义函数(user-defined function,简称UDF). 一.系统函数 系统函数是Mysql/MariaDB内置的函数,下面有几个案例. 1>.统计表中的行数 MariaDB [yinzhengjie]> SELECT * FROM students; +-------+---------------+-----+-…
MySQL/MariaDB数据库的视图(VIEW)
MySQL/MariaDB数据库的视图(VIEW) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.视图概述 1>.什么是视图 视图就是一个虚拟的表,保存有实表的查询结果.换句话说,视图并不存储数据,视图的数据来自于实体表(基表). 视图中的数据事实上存储于“基表”中,因此,其修改操作也会针对基表实现:其修改操作受基表限制. 优点: 1>.将繁琐的查询语句定义为视图,便于下此调用时方便; 2>.视图可以隐藏表结构,尤其是比较铭感的数据(财务薪资查询等); 缺点:…
MySQL/MariaDB数据库的多表查询操作
MySQL/MariaDB数据库的多表查询操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.单表查询小试牛刀 [root@node105.yinzhengjie.org.cn ~]# cat yinzhengjie_innodb.sql -- MySQL dump 10.13 Distrib 5.5.33, for Linux (x86_64) -- -- Host: localhost Database: yinzhengjie -- ----------------…
远程连接MySQL(MariaDB)数据库
网络环境: MySQL(MariaDB)服务器的操作系统为 CentOS 7 MySQL(MariaDB)服务器IP:172.16.230.15 客户端操作系统为 Windows 2008 R2 客户主机IP:172.16.230.200 在实际的工程或项目开发中,如果数据库服务器被放置在机房或机房的机柜中,开发或工程人员只能通过网络远程连接数据库进行操作时就需要用到我下面介绍的内容了.拓扑图如下: 1.客户端远程连接数据库需要先安装mysql的客户端工具,mysql的客户端工具网上有很…
mysql/mariadb 数据库配置
1. 启动mariadb systemctl start mariadb 2. 设置开机启动mariadb systemctl enable mariadb 一.修改用户密码,以root为例 1. 知道root密码,需要修改 方法a. 登入数据库来修改 # mysql -uroot -p /*输入密码进入*/ /*第一个方式:直接编辑数据库字段*/ MariaDB [(none)]> use mysql; MariaDB [mysql]> UPDATE user SET pa…
详解MariaDB数据库的存储过程
1.什么是存储过程 很多时候,SQL语句都是针对一个或多个表的单条语句.但是也有时候有的查询语句需要进行多次联表查询才能完成,此时就需要用到存储过程了. 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,存储在数据库中经过第一次编译后,再次调用不需要再次编译.用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它. 存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程. 2.为什么要使用存储过程…
MySQL/MariaDB数据库忘掉密码解决办法--技术流ken
前言 有些时候我们常常会忘掉一些服务的密码,比如系统密码,我们可以进入救援模式进行修改密码,可参考我之前的博客<Centos7破解密码的两种方法--技术流ken>.但有些时候我们也会忘掉数据库的密码,本篇博客将会讲解如果忘掉数据库密码如何进行修改. 实验环境 CentOS Linux release 7.5.1804 (Core) mysql Ver 15.1 Distrib 5.5.56-MariaDB, for Linux (x86_64) using readline 5.1 数据库忘…