April 21, 2015

[MySQL 5.7.7] 拆分LOCK_grant读写锁

Worklog: https://dev.mysql.com/worklog/task/?id=8355 问题: Lock_grant锁实际上是一个读写锁,每执行一条sql都要读取执行check_grant来检查权限是否匹配,这时候加的是读锁,而读锁是可以并发的。大多数情况下加锁开销是很不明显的,但是在MySQL将大多数只读场景下的锁都消除掉后,LOCK_grant开始变的比较突出了。 5.7里主要消除掉了几种会影响到只读性能的锁: #为InnoDB表消除THR_LOCK #MDL LOCK维护改成LOCK FREE的算法 #为AUTO-COMMIT的SELECT缓存Read View来减少trx_sys->mutex冲突 Stewart Smith report了一个Bug#72829 来描述LOCK_grant在power机型的影响,在他的测试中,LOCK_grant去除掉后,居然有50的性能提升。我相信这是和平台相关的。。。因为我的机器上很难达到这样的提升。。。。 原创文章,转载请注明: 转载自Simple Life 本文链接地址: [MySQL 5.7.7] 拆分LOCK_grant读写锁 Post Footer automatically generated by wp-posturl plugin for wordpress.