MySQL内核与性能优化
文章平均质量分 63
主要关注MySQL内核源代码的研究,MySQL的bug跟踪和fix以及从内核层面优化MySQL性能
zhaiwx1987
淘宝,开发DBA,专注于MySQL性能优化及其他开源信息
展开
-
[MySQL Patch] Binlog文件预分配
转载请署名:印风------------------------------------------------------------------------------------之前已经介绍过实现思路,binlog预分配在两年前被Yoshinori Matsunobu在5.1里实现,但其存在问题的是,即如果在非xfs系统上时,可能会在预分配文件时因为持有大锁,导致tps长时间为0。这原创 2012-06-28 20:35:06 · 3251 阅读 · 0 评论 -
MySQL:如何编写UDF
1.什么是UDFUDF顾名思义,就是User defined Function,用户定义函数。我们知道,MySQL本身支持很多内建的函数,此外还可以通过创建存储方法来定义函数。UDF为用户提供了一种更高效的方式来创建函数。 UDF与普通函数类似,有参数,也有输出。分为两种类型:单次调用型和聚集函数。前者能够针对每一行数据进行处理,后者则用于处理Group By这样的情况。 2.原创 2011-10-25 09:10:28 · 3478 阅读 · 0 评论 -
MySQL:如何编写daemon plugin
1.什么是DaemonPlugin顾名思义,daemon plugin就是一种用来在后台运行的插件,在插件中,我们可以创建一些后台线程来做些有趣的事情。大名鼎鼎的handlesocket就是一个daemon plugin。而在mysql5.6中,也是通过daemon plugin来实现了memcached功能。 2.为什么使用DaemonPlugin就像handlersocket,原创 2011-11-02 16:19:45 · 2222 阅读 · 0 评论 -
改进MySQL的table_cache
以下为本人在工作中的碎碎念,记录的比较凌乱……........................................................................在mysql里面有一个参数table_cache,当设置过大时,会产生明显的效率下降。这是因为扫描open_cache哈希表时,使用的线性扫描,时间复杂度为O(n),mysql的bug list上有人提原创 2011-11-02 19:28:57 · 2698 阅读 · 0 评论 -
禁止死锁检测来提升高并发MySQL性能
在一个高并发的MySQL服务器上,事务会递归检测死锁,当超过一定的深度时,性能的下降会变的不可接受。FACEBOOK早就提出了禁止死锁检测。我们做了一个实验,在禁止死锁检测后,TPS得到了极大的提升,如下图所示:禁止死锁检测后,即使死锁发生,也不会回滚事务,而是全部等待到超时Patch比较简单,直接在死锁检测前加一层判断即可:if (innobase_deadloc原创 2011-11-09 14:22:42 · 3113 阅读 · 0 评论