随笔分类 - MySQL
摘要:一、前言 从mydumper v0.11.5版本开始,mydumper提供了--load-data参数,使用此参数导出的sql文件将不再是insert语句,而是load data语句。在MySQL官方文档中关于load data是这么描述的:When loading a table from a t
阅读全文
摘要:一、前言 说起MySQL的逻辑备份,一般大家用的最多的是mysqldump,MySQL官方提供的逻辑导出的工具,简单易用,可以产生一致性备份。但是mysqldump只能单线程导出,导出速度有限。为了提升逻辑备份速度,MySQL官方推出了mysqlpump,支持多线程导出,一定程度上提升了导出速度。但
阅读全文
摘要:关于MySQL的加锁机制,其实十分复杂,不同的隔离级别,是否是主键或索引,锁的粒度等等。很多工作了很多年的MySQL DBA也不能把各种加锁场景一一讲清楚。有时候一个简单的锁等待场景都值得深入研究,大家更多的是知其然而不知其所以然。本文介绍的是一个很常见的锁等待问题,并通过解析源码理解背后的实现机制
阅读全文
摘要:对于MySQL的系统参数,有些参数只能在全局级别(global)修改,有些参数能在全局和会话(session)级别修改。对于能在会话级别修改的参数,应用用户也可以在当前会话中修改需要的参数来实现不同的业务需求。 比如sql_mode参数,不同的应用可以根据不同的需求在各自的session中进行修改。
阅读全文
摘要:一、内存使用率高且不释放问题排查 生产环境MySQL 5.7数据库告警内存使用率95%。排查MySQL内存占用问题的思路方法可以参考叶老师这篇文章:https://mp.weixin.qq.com/s/VneUUnprxzRGAyQNaKi-7g 。 TOP命令查看MySQL进程的RES指标,发现内
阅读全文
摘要:继续上篇关于MySQL源码调试的文章,分享一篇我在爱可生开源社区发表的文章。这篇文章介绍了通过阅读源码,解析MySQL慢查询日志功能的执行原理,并通过调试源码,定位到了MySQL慢查询日志功能中的一个bug。 https://opensource.actionsky.com/%e6%95%85%e9
阅读全文
摘要:一、背景 MySQL是当今世上最受欢迎的使用最广泛的开源数据库,它的繁荣离不开它的开源特性。放在过去商业数据库的时代,大家都没有机会接触到数据库的源代码,但在如今开源数据库的时代,越来越多的人开始研究数据库的源码,并给社区贡献代码,MySQL官方每次发布新版本都要感谢一些在社区上贡献代码的程序员。现
阅读全文
摘要:主从半同步复制是目前用得最多的MySQL复制方案,日常工作中我们一般通过show slave status语句查看当前复制过程中状态信息,基本上能满足大多数场景下的需求。Performance_schema中提供了16个关于复制的监控表(包括组复制、过滤复制等,这里我们先不讨论),show slav
阅读全文
摘要:一、背景 MySQL从5.6开始引入了Online DDL,alter操作不再阻塞dml。在MySQL 8.0中,针对Online DDL做了进一步优化,alter table加列操作支持INSTANT算法,意思就是使用这个算法进行加列操作只需要修改表的元数据信息,操作瞬间就完成了。在MySQL 8
阅读全文