MySQL事务隔离级别

查看数据库当前隔离级别

select @@tx_isolation;
image.png

修改事务隔离级别

1、永久修改,修改配置文件 my.cnf

...
# 增加下面配置
transaction-isolation=READ-COMMITTED
...

2、临时修改,执行语句

set session transaction isolation level read uncommitted;

四种隔离级别

9e3df8dcd100baa1c6a33b1b9278221bc9fc2e70.jpeg
脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据
不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致。
幻读:管理员将表中所有数据进行统一修改,这时候插入一条新数据,管理员改完后发现有一条记录没改过来,就好像发生了幻觉一样,这就叫幻读。比如在A客户端事务中查询名字叫张三的所有记录有2条,这时候其它客户端插入一条新的记录,然后A客户端更新所有张三的记录,会显示更新了3条,但是查询只有2条
不可重复读的和幻读很容易混淆,不可重复读侧重于修改,幻读侧重于新增或删除。解决不可重复读的问题只需锁住满足条件的行,解决幻读需要锁表
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容