Mysql事务隔离级别

什么是事务?老生常谈:事务是逻辑上的一组操作 , 要么都执行 , 要么都不执行
经典实例:转账给你 , 我减少100 , 你增加100 , 不能因为系统故障导致 , 我钱转出了 , 而你没收到
【Mysql事务隔离级别】事务的四大特性
A:原子性 , 最小执行单位 , 要么都执行 , 要么都不执行C:一致性 , ?I:隔离性 , 并发访问数据库是 , 两个事务是独立的 , D:持久性串行执行是不会事务执行很顺畅 , 但当不同事务同时执行时可能出现各种情况 , 以student表为例
#表定义
CREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENT,`name`varchar(32)DEFAULTNULL,`create_time`timestampNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8mb4;#初始数据
mysql>select*fromstudent;+----+----------+---------------------+|id|name|create_time|+----+----------+---------------------+|1|Jarry|2020-08-1309:14:01||2|Hameimei|2020-08-1309:14:09|+----+----------+---------------------+2rowsinset(0.00sec)事务并发可能发生的情况a.脏读一个事务读到另一个事务未提交的事务
脏读只在读未提交隔离级别才出现b.不可重复读 不可重复读在读未提交、读已提交隔离级别都可能出现c.幻读 不可重复读在读未提交、读已提交、可重复读隔离级别都可能出现两者区别?对于前者,只需要锁住满足条件的记录
对于后者,要锁住满足条件及其相近的记录
不可重复读重点在于update和delete , 而幻读的重点在于insert
事务的隔离级别Mysql事务隔离级别有4个:读未提交、读已提交、可重复读、可串行化
#读未提交
可以解决脏读、不可重复度 , 但是不能解决幻读问题
#可重复读
四种级别比较


    推荐阅读