mysql的并发控制
2016-04-08 15:55
190 查看
MySql在两个层面实现并发控制:服务器层和存储引擎层。
MySql服务器层不管理事务,事务是由下层存储引擎实现的。所以在同一个事务中,使用多种存储引擎是不可靠的。
一、隐式锁定和显式锁定:
1.在事务执行过程中随时都可以执行锁定,锁只有在执行COMMIT或者ROLLBACK的时候才会释放,并且所有的锁都是同一时刻被释放的。这些都是隐式锁定,InnoDB会根据隔离级别在需要的时候自动加锁。
2.InnoDB也支持通过特定的语句进行显式锁定,这些语句应该尽量避免使用:
SELECT ... LOCK IN SHARE MODE
SELECT ... FOR UPDATE
MySql也支持LOCK TABLES 和 UNLOCK TABLES语句,这是在服务器层实现的,和存储引擎无关。它们有自己的用途。如果应用需要用到事务,还是应该选择事务型存储引擎。 当应用已经将表从MyISAM转换到InnoDB但还是显式的使用LOCK TABLES语句,会严重影响性能,实际上InnoDB的行级锁工作的更好。
转载于:https://www.cnblogs.com/zxCoding/p/5368487.html
相关文章推荐
- Mysql加锁过程详解(5)-innodb 多版本并发控制原理详解
- MySQL进阶-并发控制、事务、多版本并发、存储引擎
- 并发控制__锁(mysql)
- 上课笔记第三十一天MySQL并发控制、引擎、用户权限管理、查询缓存
- MySQL 引擎 和 InnoDB并发控制 简介
- 深入理解Mysql——锁、事务与并发控制
- 【MySQL】多版本并发控制
- mysql的mvcc(多版本并发控制)
- 深入理解Mysql——锁、事务与并发控制(辟谣)
- 关于MySQL如何使用MVCC(多版本控制)来保证在并发的情况下数据的一致性
- 干货 | 浅析RDS MySQL 8.0语句级并发控制
- MySQL 引擎 和 InnoDB并发控制 简介
- MySQL多版本并发控制机制(MVCC)-源码浅析
- Entity Framework 6 Code First 系列:无需修改实体和配置-在MySql中使用和SqlServer一致的并发控制
- 并发控制 mysql InnoDB表锁
- MySQL 引擎 和 InnoDB并发控制 简介
- MySQL的并发控制与加锁分析
- MySQL多版本并发控制分析
- SQL事务的四种隔离级别和MySQL多版本并发控制
- MySQL并发控制之读写锁和锁粒度详解