MySQL:pt-online-schema-change原理及注意点(未完)
欢迎关注我的《深入理解MySQL主从原理 32讲 》 一、pt-online-schema-change 原理简析首先要说明pt-online-schema-change工具并不是说修改表结构的时候不上锁,通常我们说的锁一般包含innodb 行锁和MDL lock。而pt-online-schema-change工具就是将某些使用COPY算法的DDL操作使用DML操作来代替,换句话说就是
MySQL:Table_open_cache_hits/Table_open_cache_misses/Table_open_cache_overflows
欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 这3个值的均和函数open_table有关,且他们均和table cache和table share有关,下面是一个粗略的解释,具体解释参考其他书籍: table cache:会话实例化(instance),通过table share表定义实例化,持有文件的文件描述符。table share:内存中表的定义。 一、Ta
MySQL:5.6 大事务show engine innodb status故障一例
今天遇到一个朋友的线上问题,大概意思就是说,我有一个线上的大事务大概100G左右,正在做回滚,当前看起来似乎影响了线上的业务,并且回滚很慢,是否可以减轻对线上业务的影响。并且朋友已经取消了双1设置,但是没有任何改观。版本MySQL 5.6 欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 首先我们需要知道的是,MySQL并不适合大事务,大概列举一些MySQL中大事务
MySQL:理解MDL Lock
本文基于源码版本5.7.14水平有限,有误请谅解笔者已经将加好MDL 获取过程和释放过程的版本放到了github如下:https://github.com/gaopengcarl/percona-server-locks-detail-5.7.22供参考 一、MDL Lock综述MySQL中MDL锁一直是一个比较让人比较头疼的问题,我们谈起堵塞一般更加倾向于InnoDB层的row loc
随笔:MySQL 普通3表join顺序
只考虑nest loop,不考虑hash join 条件如下:a,b,c where a.id=b.id and a.id=c.id where a.name=’gaopeng’,b.name=’gaopeng’,c.name=’gaopeng’ 假设a为驱动表,先连接b,再连接c ,且b,c表 id均有索引。流程如下: loop: 1、访问驱动表a,过滤条件a.name='gaope
MySQL:排序(filesort)详细解析
能力有限有误请指出。本文使用源码版本:5.7.22 引擎为:Innodb 欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 如果图片不能显示可查看下面链接:https://www.jianshu.com/p/d636215d767f 排序(filesort)作为DBA绕不开的话题,也经常有朋友讨论它,比如常见的问题如下: 排序的时候,用于排序的数据会不会如Inn
第20节 从库MTS多线程并行回放(二)
从库MTS多线程并行回放(二) 欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 本节包含一个笔记如下:https://www.jianshu.com/p/e920a6d33005 这一节会先描述MTS的工作线程执行Event的大概流程。然后重点描述一下MTS中检查点的概念。在后面的第25节我们可以看到,MTS的异常恢复很多情况下需要依赖这个检查点,从检查点位置开始扫描r
第19节 从库MTS多线程并行回放(一)
从库MTS多线程并行回放(一) 欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 本节包含一个笔记如下:https://www.jianshu.com/p/8706d7422d89 之所以将MTS的相关知识放到这里讲解,是因为后面的几节会用到这部分知识,如果不先讲解后面几节将没有办法进行描述。 一、综述与单SQL线程的回放不同,MTS包含多个工作线程,原有的SQL线程蜕