美文网首页
MySQL 事务属性

MySQL 事务属性

作者: lc_666 | 来源:发表于2020-03-31 20:57 被阅读0次

    事务的属性 ACID

    • 原子性 Atomicity:指事物是一个不可分割的单位,事务操作要么都执行,要么都不执行;
    • 一致性 Consistency:事务必须使数据库从一个一致状态转变到另一个一致性状态;
    • 隔离性 Isolation:一个事务的执行不能被其他事务干扰;并发执行的各个事务之间不能互相干扰;
    • 持久性 Durability:一个事务一旦被提交,对数据库中的改变是永久性的;

    隔离级别

    并发问题:

    • 脏读:对于连个事务,T1读取了T2更新但未提交的数据,则T1读取的内容就是临时且无效的;
    • 不可重复读:对于两个事务,T1读取了一个字读,T2更新了该字段,T1再次读取同一个字段,值就不同了;(针对更新)
    • 幻读:T1读取数据子后,T2插入了一些新数据,之后T1在读取同一个表,就会多出几行;(针对新增)

    隔离级别

    • READ-UNCOMMITTED:三种问题都会出现,mysql最低级别;oracle不支持
    • READ-COMMITTED:避免了脏读,其他两个没有避免;oracle默认级别;oracle支持
    • REPEATABLE-READ:可避免脏读,不可重复读;oracle不支持,mysql默认级别;
    • SERIALIZABLE:都可以避免;oracle支持
    • 查看当前隔离级别:
    #5.7及之后
    select @@transaction_isolation;
    #5.7以前
    select @@tx_isolation;
    
    • 设置当前连接的隔离级别:
    set session transaction isolation level 级别;
    

    相关文章

      网友评论

          本文标题:MySQL 事务属性

          本文链接:https://www.haomeiwen.com/subject/dnwguhtx.html