随笔分类 -  MySQL InnoDB

MySQL InnoDB releated
MySQL Cluster --01
摘要:【MySQL Cluster】 MySQL Cluster 是MySQL 官方集群部署方案, 支持自动分片、读写扩展;通过实时备份冗余数据。适合于分布式计算环境的高实用、高冗余版本,是可用性最高的方案,官方声称可做到99.999%的可用性。MySQL Cluster采用NDB Cluster 存储引 阅读全文
posted @ 2018-04-28 22:27 王彦军 阅读(526) 评论(0) 推荐(0)
TPCC-MySQL(转自imysql.com)
摘要:【Tpcc-mysql】 Tpcc-mysql是percona基于tpcc衍生出来的产品,专用于mysql基准测试,其源码放在bazaar(Bazaar是一个分布式的版本控制系统,采用 GPL 许可协议,可运行于 Windows、GNU/Linux、UNIX 以及 Mac OS 系统之上。Bazaa 阅读全文
posted @ 2018-04-19 16:44 王彦军 阅读(404) 评论(0) 推荐(0)
MySQL mha 高可用集群搭建
摘要:【mha】 MHA作为MySQL故障切换和主从提升的高可用软件,在故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。 从宕机崩溃的master保存二进制日志事件(binlog even 阅读全文
posted @ 2017-11-19 17:01 王彦军 阅读(708) 评论(0) 推荐(0)
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 王彦军 阅读(857) 评论(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)
MySQL show processlist 执行状态分析
摘要:1、Sleep 通常代表资源未释放,如果是通过连接池,sleep状态应该恒定在一定数量范围内 实战范例:因前端数据输出时(特别是输出到用户终端)未及时关闭数据库连接,导致因网络连接速度产生大量sleep连接,在网速出现异常时,数据库too many connections挂死。 简单解读,数据查询和 阅读全文
posted @ 2017-07-26 16:39 王彦军 阅读(1702) 评论(0) 推荐(0)
MySQL分片 --转自Peter Zaitsev对MySQL分片的建议
摘要:本文作者Peter Zaitsev是知名数据库专家,2006年联合创立了Percona。负责维护网站“MySQL性能”。同时,他也是《高性能MySQL》一书的联合作者。以下是他对MySQL分片的建议: 在与客户讨论分片决策的时候,我经常会先给他们讲下面这个真实的故事。几年前,有客户来找我,希望获得关 阅读全文
posted @ 2017-06-11 16:30 王彦军 阅读(3009) 评论(0) 推荐(0)
使用Innobackupex快速搭建(修复)MySQL主从架构
摘要:MySQL的主从搭建大家有很多种方式,传统的mysqldump方式是很多人的选择之一。但对于较大的数据库则该方式并非理想的选择。使用Xtrabackup可以快速轻松的构建或修复mysql主从架构。本文描述了使用innobackupex快速来搭建或修复主从架构。供大家参考。 2. 基于主库做一个完整备 阅读全文
posted @ 2017-06-01 13:18 王彦军