最近更新时间:2021-01-25 16:38:49
在mysql5.7.x及以下版本,当出现锁冲突,会同步死锁检测,判断此操作是否会形成死锁。工作线程需要等待死锁检测结果,在锁冲突较高的场景,死锁检测成为性能瓶颈点,降低了数据库的性能。
数据读写过程中,锁系统的互斥锁会保护锁(行锁,表锁等)资源。在高并发场景下,线程间互斥锁形成锁冲突,影响数据库的性能。
KingSQL将死锁检测由同步检测替换为异步检测,提升了数据读写性能,在无死锁的情况下无需同步等待,降低数据处理延时。通过把锁系统的互斥锁修改为多个桶锁,降低了多线程间并发读写的锁冲突,提升数据库的并发性能。
参数配置
参数 | 含义及配置值 |
---|---|
innodb_lock_hash_cells | 锁粒度,这个值跟buffer_pool大小相关,如果buffer_pool大于64GB则需要调整该值 取值范围:1 - 1024 默认值: 64 修改后需重启 |
纯净模式