数据库优化专题---5、删改数据如何避免锁表
数据库进行删改操作时,可能出现锁表情况,那如何避免锁表情况呢?这节给大家介绍下。什么是锁机制InnoDB采用的是行级锁,删改数据的时候,Mysql会锁住记录;共享锁和排它锁行级锁分为共享锁(S锁)和排它锁(X锁);共享锁和排它锁,都不允许其他事务执行写操作,但是可以读数据;排它锁不允许对数据再另外加锁;共享锁只有serializable事务隔离级别,才会给数据读取添加共享...
·
数据库优化专题—1、表的主键用数字还是UUID
数据库优化专题—2、逻辑删除还是物理删除
数据库优化专题—3、千万记录如何快速分页
数据库优化专题—4、读多写少和读多写多
数据库优化专题—5、删改数据如何避免锁表
数据库优化专题—6、如何避免偷换交易中的商品信息
数据库优化专题—7、SQL语句优化
数据库优化专题—8、Mysql参数优化
数据库优化专题—9、索引优化
数据库优化专题—10、存储优化
数据库优化专题—11、数据库结构优化
数据库进行删改操作时,可能出现锁表情况,那如何避免锁表情况呢?这节给大家介绍下。
什么是锁机制
- InnoDB采用的是行级锁,删改数据的时候,Mysql会锁住记录;
共享锁和排它锁
- 行级锁分为共享锁(S锁)和排它锁(X锁);
- 共享锁和排它锁,都不允许其他事务执行写操作,但是可以读数据;
- 排它锁不允许对数据再另外加锁;
共享锁
- 只有serializable事务隔离级别,才会给数据读取添加共享锁;
SELECT ...... FROM ...... LOCK IN SHARE MODE;
- 添加了共享锁,其他事务只能读取加锁数据,而不能修改和删除;
排它锁
- MySQL默认会给添加、修改和删除记录,设置排它锁;
SELECT ...... FROM ...... FOR UPDATE;
- 排它锁不允许对数据再添加其他锁;
如何减少并发操作的锁冲突
- 把复杂的SQL语句,拆分成多条简单的SQL语句;
总结
- 优化SQL语句,拆分SQL,减少数据锁表时间。
更多推荐
所有评论(0)