MYSQL:事务与锁
Posted 挣扎一下
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL:事务与锁相关的知识,希望对你有一定的参考价值。
事务的特性 ACID
原子性
一致性
隔离性
持久性
通过redolog 和 doublewrite(页损坏的情况) 实现持久性
事务什么时候开启
默认自动开启,自动提交。
通过begin;命令显式开启事务;通过commit;/rollback;结束事务。
事务的隔离级别
读未提交
存在的问题:脏读、不可重复读、幻读
读已提交
存在的问题:不可重复读(update,delete)、幻读
可重复读
存在的问题:幻读(insert)
串行化
存在的问题:性能太低
mysql解决可重复读
- 快照读(select XXX):MVCC:增加了隐藏的两列:事务ID、回滚指针(旧版本)
- 当前读(除了简单select 以外的sql):通过锁实现
意向锁
提高加表锁的效率
锁的到底是什么?
锁的是索引,假如是辅助索引还会锁其对应的主键。
以上是关于MYSQL:事务与锁的主要内容,如果未能解决你的问题,请参考以下文章