实验1. 创建延迟的磁盘用 dd 创造一块 100M 的文件dd if=/dev/zero of=/tmp/100M bs=1024k count=10将创建的文件用 losetup 虚拟成块设备 ... 阅读全文
问题我的 MySQL CPU 高了,看了一下 processlist,实在有太多行了,我要不要准备辞职?实验MySQL CPU 飚高的原因有很多种,我们先分析一种最简单常见的。还是先建个数据库还是按照之前 实验 11 的技巧,快速造一些数据 ... 阅读全文
问题我们都知道,半同步复制中,如果 slave 比较慢,会拖慢 master 的提交性能。那么,在一主多从的半同步架构中,如果 master 的提交性能慢,如何判断是哪个 slave 拖慢了性能?实验先通过 dbdeployer 快速搭建一主两从半同步集群 ... 阅读全文
问题我有个大的 SQL 文件要回放,需要马上做,但又怕压死业务,怎么办?实验先来建一个测试库塞一些数据进去看看我们塞数据的成果使用 mysqldump 导出一份数据现在我们假设要把这个 dum ... 阅读全文
问题我写错了脚本,ibd 文件被删除了,该往哪个方向逃跑?实验先来建一个测试库我们在这里开启了 innodb_file_per_table,但这个参数并非本实验所必须,只是为了演示方便。然后模拟一个业务压力 ... 阅读全文
问题我们并不喜欢 MySQL 中出现大事务(更新很多数据的事务),大事务往往带来很多维护的问题。我们在维护 MySQL 时,需要关注于是否出现了较大事务,在 binlog 里找到其出现的证据。实验我们先创建个数据库 ... 阅读全文
问题有时候我们会不小心对一个大表进行了 update,比如说写错了 where 条件......此时,如果 kill 掉 update 线程,那回滚 undo log 需要不少时间。如果放置不管,也不 ... 阅读全文
问题我们执行 alter table 语句后,经常面临“跑又跑不完,杀又不敢杀”的窘境。如果能评估 alter table 的进度就幸福多了。实验MySQL官方已经给出了文档:https://dev. ... 阅读全文
问题我们都知道 innodb_buffer_pool_instances 参数,将 buffer pool 分成几个区,每个区用独立的锁保护,这样就减少了访问 buffer pool 时需要上锁的粒 ... 阅读全文
问题:内部临时表会使用多少内存呢?MySQL 在处理临时结果集(UNION 运算 / 聚合运算等)时,会用到内部临时表(internal temporary table)。那么内部临时表会使用多少内存呢? ... 阅读全文
问题仅用慢日志文件,如何快速获取分时报告?如果有监控系统,获取分时报告(每小时慢查询的条数报告)不难,如果只有慢日志文件,就会有点费劲。实验通过 pt-query-digest --timelin ... 阅读全文
问题磁盘 IO 报警,说 IO 饱和了。那么 MySQL 读写哪个文件慢了?binlog?redo log?还是哪张表?构造环境根据先前的 实验 02,构造环境,模仿 binlog 的磁盘 IO ... 阅读全文
工具:pt-tool先检查各个刷盘参数开启 pt-tool在 MySQL 中,任意表插入一行观察 pt-ioprofile 的结果我们用 pt-ioprofile 跟踪 MySQL IO 的系统调 ... 阅读全文