锁优化

最近更新时间:2021-01-25 16:38:49

查看PDF

在mysql5.7.x及以下版本,当出现锁冲突,会同步死锁检测,判断此操作是否会形成死锁。工作线程需要等待死锁检测结果,在锁冲突较高的场景,死锁检测成为性能瓶颈点,降低了数据库的性能。
数据读写过程中,锁系统的互斥锁会保护锁(行锁,表锁等)资源。在高并发场景下,线程间互斥锁形成锁冲突,影响数据库的性能。

KingSQL将死锁检测由同步检测替换为异步检测,提升了数据读写性能,在无死锁的情况下无需同步等待,降低数据处理延时。通过把锁系统的互斥锁修改为多个桶锁,降低了多线程间并发读写的锁冲突,提升数据库的并发性能。

适用场景

  • 适用于互联网模式下的秒杀场景。
  • 适用于热点数据表高并发数据更新的场景。

参数配置

参数 含义及配置值
innodb_lock_hash_cells 锁粒度,这个值跟buffer_pool大小相关,如果buffer_pool大于64GB则需要调整该值
取值范围:1 - 1024
默认值: 64
修改后需重启

文档内容是否对您有帮助?

根本没帮助
文档较差
文档一般
文档不错
文档很好

在文档使用中是否遇到以下问题

  • 内容不全,不深入
  • 内容更新不及时
  • 描述不清晰,比较混乱
  • 系统或功能太复杂,缺乏足够的引导
  • 内容冗长

更多建议

0/200

评价建议不能为空

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

问题反馈