MySQL中的隔离级别和悲观锁及乐观锁
来源:互联网 发布:中国卡车出口数据 编辑:程序博客网 时间:2024/06/06 12:35
1,MySQL的事务支持
MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关:
- MyISAM:不支持事务,用于只读程序提高性能
- InnoDB:支持ACID事务、行级锁、并发
- Berkeley DB:支持事务
2,隔离级别
隔离级别决定了一个session中的事务可能对另一个session的影响、并发session对数据库的操作、一个session中所见数据的一致性
ANSI标准定义了4个隔离级别,MySQL的InnoDB都支持:
- READ UNCOMMITTED:最低级别的隔离,通常又称为dirty read,它允许一个事务读取还没commit的数据,这样可能会提高性能,但是dirty read可能不是我们想要的
- READ COMMITTED:在一个事务中只允许已经commit的记录可见,如果session中select还在查询中,另一session此时insert一条记录,则新添加的数据不可见
- REPEATABLE READ:在一个事务开始后,其他session对数据库的修改在本事务中不可见,直到本事务commit或rollback。在一个事务中重复select的结果一样,除非本事务中update数据库。
- SERIALIZABLE:最高级别的隔离,只允许事务串行执行。为了达到此目的,数据库会锁住每行已经读取的记录,其他session不能修改数据直到前一事务结束,事务commit或取消时才释放锁。
乐观所和悲观锁策略:
悲观锁:在读取数据时锁住那几行,其他对这几行的更新需要等到悲观锁结束时才能继续
乐观所:读取数据时不锁,更新时检查是否数据已经被更新过,如果是则取消当前更新
悲观锁:在读取数据时锁住那几行,其他对这几行的更新需要等到悲观锁结束时才能继续
乐观所:读取数据时不锁,更新时检查是否数据已经被更新过,如果是则取消当前更新
0 0
- MySQL中的隔离级别和悲观锁及乐观锁
- MySQL中的隔离级别和悲观锁及乐观锁示例
- MySQL中的隔离级别和悲观锁及乐观锁示例
- mysql隔离级别与悲观锁、乐观锁
- mysql事务隔离级别以及乐观锁悲观锁
- mysql事务隔离级别、乐观锁、悲观锁
- 3、数据库隔离级别以及悲观锁和乐观锁
- MySql中的悲观锁和乐观锁
- 数据库事务隔离级别与锁 悲观锁 乐观锁
- Hibernate事务与并发问题处理(乐观锁与悲观锁)及事务隔离级别
- Hibernate之事务、隔离级别、悲观锁、乐观锁
- Hibernate悲观锁、乐观锁 以及事务隔离级别
- Hibernate之事务、隔离级别、悲观锁、乐观锁
- 从事务隔离级别谈到Hibernate乐观锁,悲观锁
- 事务的隔离级别以及乐观锁,悲观锁
- 事务隔离级别与乐观锁、悲观锁
- 从事务隔离级别谈到Hibernate乐观锁,悲观锁
- 事物、隔离级别、(悲观、乐观)锁等概念理解
- mybatis中#{}和${}的区别和问题
- hdu 5325 Crazy Bobo
- 大型网站系统与JAVA中间件实践——chapter1-4之各种类型的IO比较
- Linux常用命令其他帮助命令
- openstack 基础知识
- MySQL中的隔离级别和悲观锁及乐观锁
- jvm 内存溢出问题排查方法
- Android WebView的使用
- mysql主从复制配置
- JSP之九大隐式对象
- 小建议:数据分析师个人该如何发展?
- inflate进阶
- 数据的标准化方法
- CF - 375B DP