在不同的隔离级别下,InnoDB的锁机制和一致性读策略不同 。
在了解InnoDB锁特性后,用户可以通过设计和SQL调整等措施减少锁冲突和死锁,包括:
- 尽量使用较低的隔离级别; 精心设计索引,并尽量使用索引访问数据,使加锁更精确,从而减少锁冲突的机会;
- 选择合理的事务大小,小事务发生锁冲突的几率也更小;
- 给记录集显式加锁时,最好一次性请求足够级别的锁 。比如要修改数据的话,最好直接申请排他锁,而不是先申请共享锁,修改时再请求排他锁,这样容易产生死锁;
- 不同的程序访问一组表时,应尽量约定以相同的顺序访问各表,对一个表而言,尽可能以固定的顺序存取表中的行 。这样可以大大减少死锁的机会;
- 尽量用相等条件访问数据,这样可以避免间隙锁对并发插入的影响; 不要申请超过实际需要的锁级别;除非必须,查询时不要显示加锁;
- 对于一些特定的事务,可以使用表锁来提高处理速度或减少死锁的可能 。
【详解Mysql中的锁机制】
推荐阅读
- MySQL高级查询
- Swift 中的命令行应用
- M MySQL VARCHAR最多能存储多少数据
- 恋爱中的犀牛 话剧?犀牛的恋爱话剧台词
- yaya|泰星Yaya谈婚期:我已经准备好了,我梦想中的结婚地点是在挪威
- 分手大师|《分手大师》当中的男人梅远贵,拥有一个特殊的职业,让人意外
- 电影|《色·戒》当中的梁朝伟身为男主角,却扮演的是一个反派
- 容祖儿|赵本山戏中的“御用老伴”关婷娜,39岁的她身材丰腴,大秀美腿
- 藏红花油其中的功效和作用是什么?
- 九宫飞星图风水方位详解 九宫飞星图