mysql事务隔离级别

事务的特性

  • 原子性:指处于同一个事务中的多个操作是不可分割的。

  • 一致性:当数据库成功事务提交时,事务中的所有操作都成功,就说数据库处于一致性状态。

  • 隔离性:同一时刻只允许一个事务操作同一数据,多个事物之间互不干扰

  • 持久性:事务一旦执行提交,就应该被持久化

概念

  • 脏读:读取到了其他事物未提交的数据

  • 幻读:一个事务两次读取中,后一次查询看到了前一次查询没有看到的行(新insert), 指一个事务中后一次查询读取到了另外事务中提交的 insert 的数据

  • 不可重复读(虚读):一个事务两次读取中,后一次查询看到了前一次查询没有看到的行(新update), 指一个事务中后一次查询读取到了另外事务中提交的 update 的数据

事务隔离级别

*注: √表示会产生,× 表示不会产生

隔离级别 脏读(Dirty Read) 不可重复读(NonRepeatable Read) 幻读(Phantom Read)
未提交读(Read uncommitted
已提交读(Read committed) ×
可重复读(Repeatable read默认) × ×
可串行化(Serializable) × × ×

级别越高,数据越安全,但性能越低 , mysql 默认事务隔离级别为Repeatable read.

修改数据库默认隔离级别

set session transaction isolation level read uncommitted;
posted @ 2021-07-16 23:28  朱思年  阅读(35)  评论(0编辑  收藏  举报