08 2017 档案
MySQL pt-table-checksum及pt-table-sync校验及修复主从一致性
摘要:【pt-table-checksum】pt-table-checksum是percona-toolkit系列工具中的一个, 可以用来检测主、 从数据库中数据的一致性。其原理是在主库上运行, 对同步的表进行checksum, 记录下来。 然后对比主从中各个表的checksum是否一致, 从而判断数据是 阅读全文
posted @ 2017-08-21 17:37 王彦军 阅读(399) 评论(0) 推荐(0)
MySQL GTID
摘要:【Global Transaction ID】GTID(Global Transaction ID)是对于一个已提交事务的编号,并且是一个全局唯一的编号。GTID实际上是由UUID+TID组成的。其中UUID是一个MySQL实例的唯一标识。TID代表了该实例上已经提交的事务数量,并且随着事务提交单调 阅读全文
posted @ 2017-08-21 17:12 王彦军 阅读(392) 评论(0) 推荐(0)
MySQL Batched Key Access
摘要:Batched Key Access是MySQL 5.6 版本中的新特性,是一种用户提高表join性能的算法。【Batched Key Access】 对于多表join语句,当MySQL使用索引访问第二个join表的时候,使用一个join buffer来收集第一个操作对象生成的相关列值。BKA构建好 阅读全文
posted @ 2017-08-21 13:19 王彦军 阅读(714) 评论(0) 推荐(2)
MySQL Block Nested-Loop Join(BNL)
摘要:5.5 版本之前,MySQL本身只支持一种表间关联方式,就是嵌套循环(Nested Loop)。如果关联表的数据量很大,则join关联的执行时间会非常长。在5.5以后的版本中,MySQL通过引入BNL算法来优化嵌套执行【Nested Loop Join】 NLJ 算法:将驱动表/外部表的结果集作为循 阅读全文
posted @ 2017-08-21 12:33 王彦军 阅读(2520) 评论(0) 推荐(2)
MySQL Index Condition Pushdown
摘要:Index Condition Pushdown (ICP)是MySQL 5.6 版本中的新特性,是一种在存储引擎层使用索引过滤数据的一种优化方式。【Index Condition Pushdown】 当关闭ICP时,index 仅仅是data access 的一种访问方式,存储引擎通过索引回表获取 阅读全文
posted @ 2017-08-21 12:15 王彦军 阅读(205) 评论(0) 推荐(0)
MySQL Multi-Range Read
摘要:MySQL 5.6版本提供了很多性能优化的特性,其中之一就是 Multi-Range Read 多范围读(MRR) , 它的作用针对基于辅助/第二索引的查询,减少随机IO,并且将随机IO转化为顺序IO,提高查询效率。【Multi-Range Read】 在没有MRR之前,或者没有开启MRR特性时,M 阅读全文
posted @ 2017-08-21 11:46 王彦军 阅读(1006) 评论(0) 推荐(0)
MySQL index merge
摘要:深入理解 index merge 是使用索引进行优化的重要基础之一。 【 index merge】 当where谓词中存在多个条件(或者join)涉及到多个字段,它们之间进行 AND 或者 OR,那么此时就有可能会使用到 index merge 技术。简单的说,index merge 技术其实就是: 阅读全文
posted @ 2017-08-21 11:30 王彦军 阅读(350) 评论(0) 推荐(0)
利用 innodb_force_recovery 解决MySQL服务器crash无法重启问题
摘要:背景 MySQL服务器因为磁盘阵列损坏机器crash,重启MySQL服务时 报如下错误: 分析 主要关注 mysqld got signal 11 的问题,从日志内容分析来看,数据库在机器crash 导致日志文件损坏,重启之后无法正常恢复,更无法正常对外提供服务。 解决 因为日志已经损坏,这里采用非 阅读全文
posted @ 2017-08-17 11:26 王彦军 阅读(389) 评论(0) 推荐(0)
MySQL-5.7复制功能的默认设置改进
摘要:1. 默认开启简化的GTID 恢复 Binlog_gtid_simple_recovery=TURE(默认值) 这个参数控制了当mysql启动或重启时,mysql在搜寻GTIDs时是如何迭代使用binlog文件的。 这个选项设置为真,会提升mysql执行恢复的性能。因为这样mysql-server启 阅读全文
posted @ 2017-08-17 10:58 王彦军 阅读(858) 评论(0) 推荐(0)
MySQL explain
摘要:explain EXPLAIN SELECT ……变体:1. EXPLAIN EXTENDED SELECT ……将执行计划“反编译”成SELECT语句,运行SHOW WARNINGS 可得到被MySQL优化器优化后的查询语句 2. EXPLAIN PARTITIONS SELECT ……用于分区表 阅读全文
posted @ 2017-08-16 16:55 王彦军 阅读(170) 评论(0) 推荐(0)
MySQL服务器参数
摘要:back_log MySQL能暂存的连接数量。当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用。如果MySQL的连接数据达到max_connections时,新来的请求将会被存在堆栈中,以等待某一连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过back_log 阅读全文
posted @ 2017-08-09 15:27 王彦军 阅读(186) 评论(0) 推荐(0)
MySQL参数调优
摘要:连接请求的变量 max_connections MySQL的最大连接数,增加该值增加mysqld 要求的文件描述符的数量。如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量,当然这建立在机器能支撑的情况下,因为如果连接数越多,介于MySQL会为每个连接提供连接缓冲区,就会开销越多的内 阅读全文
posted @ 2017-08-09 15:26 王彦军 阅读(384) 评论(0) 推荐(0)
Oracle RAC(Real Application Clusters)
摘要:Oracle RAC 运行于集群之上,为 Oracle 数据库提供了最高级别的可用性、可伸缩性和低成本计算能力。如果集群内的一个节点发生故障,Oracle 将可以继续在其余的节点上运行。Oracle 的主要创新是一项称为高速缓存合并的技术。高速缓存合并使得集群中的节点可以通过高速集群互联高效地同步其 阅读全文
posted @ 2017-08-03 22:25 王彦军 阅读(4968) 评论(0) 推荐(0)