mysql事务

事务的四个特性

原子性 全成功,全失败 undo日志
一致性 数据合法的从一种状态转移为另一种状态(符合约束) undo日志
隔离性 一个事务不受另一个事务影响
持久性 事务一旦提交就不可改变 redo日志

 

事务的四个隔离级别

  脏读 不可重复读 幻读 数据库默认  
读未提交   一个事务读到了另一个事务未提交的数据
读已提交 × oracle 一个事务读到了另一个事务已经提交了的数据
可重复读 × × mysql 一个事务读到了另一个事务已经提交了的数据,但依旧返回之前读到的数据
串行化 × × ×    

 

mvcc 

隐藏字段(trx_id,roll_pointer)、Undo Log、Read View。

 

读已提交模式 生成新的Read View 假如事务1的trx_id是1 事务2的trx_id是2。 则事务2只能读到事务1已经提交了的数据
可重复读模式 不生成新的Read View 假如事务1的trx_id是1 事务2的trx_id是2。 则事务2无论再次读的时候其trx_id依旧是2所以事务1是否提交,事务2读到的数据都一样
可重复读模式 不生成新的Read View 假如事务1的trx_id是1 事务2的trx_id是2。则事务2添加数据行之后,事务1再次读trx_id依旧是1,所以事务1读到的数据依旧和原来一样




posted @ 2023-02-27 10:04  言和1225  阅读(10)  评论(0编辑  收藏  举报