InnoDB存储引擎实现了行级锁,行锁的实现带来性能的损耗比表锁更高,但在整体并发处理能力方面要远远高于MyISAM的表锁的,当系统的并发量较高时,
InnoDB的整体性能和MyISAM相比有明显的优势;
1.尽可能让所有数据检索都能通过索引来完成,避免无索引行锁升级为表所;
update tb set name='11' where id='1',当id走索引了,则为行锁,并发高,否则升级为表锁
2.合理设计索引,尽量缩小锁的范围
3.尽可能减少索引条件,及索引范围,避免间隙锁,例如id<10,在id有索引情况下,id小于10的数据都会会锁定,即使表中没有id=2的数据
在更新id<10的数据,也不能同时插入id=2的数据
4.尽量控制事务大小,减少锁定资源和时间长度;
5.尽量使用低级别事务隔离(但是需要业务层面满足需求)
InnoDB存储引擎锁的相关优化
最新推荐文章于 2024-04-24 11:08:56 发布