zoukankan      html  css  js  c++  java
  • Mysql知识:事务

    什么时候用事务
    除了查询,只要修改(增删改)就加事务
     
    事务的定义:数据库事务( transaction)是一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。
     
    innodb支持事务,myisam不支持事务
     

    事务的四大特性:

    ACID
    原子性:操作最小单位,永远不会出现部分失败
    一致性:最终目标,更像业务最终的合理性。指事务执行前后,数据处于一种合法的状态
    隔离性:多个事务对一个表的操作是相互隔离的
    持久性:只要事务提交成功,提交是永久的
    举例参考:https://zhuanlan.zhihu.com/p/65281198
     
     
    数据库事务什么时候出现
    autocommit自动是开的,updtae等语句会自动提交事务
     
    手动提交事务
    begin;
    updatae。。。。。。。。。。
    commit
    不执行commit数据不会刷新
    结束事务两种方式:rollback回滚,commit提交
     
     

    事务并发的三大问题:

    脏读:一个事务读到了另一个事务修改但没有提交的数据
     

     不可重复读:读到了其他事务已经提交了的删改(不包括增)的数据

     幻读:读到了其他事务已经提交了的插入的数据

    脏读--不可重复读 提交还是不提交
    幻读--不可重复读 插入还是删改

    三大问题:
    问题其实都是读一致性问题
    所以诞生了事务隔离机制
     
     
    四种事务隔离级别:
    串行化,未提交读基本不会用到

    解决的问题:

    事务隔离级别的解决方案

  • 相关阅读:
    UVa 12174 (滑动窗口) Shuffle
    UVa 1607 (二分) Gates
    CodeForces ZeptoLab Code Rush 2015
    HDU 1525 (博弈) Euclid's Game
    HDU 2147 (博弈) kiki's game
    UVa 11093 Just Finish it up
    UVa 10954 (Huffman 优先队列) Add All
    CodeForces Round #298 Div.2
    UVa 12627 (递归 计数 找规律) Erratic Expansion
    UVa 714 (二分) Copying Books
  • 原文地址:https://www.cnblogs.com/take-it-easy/p/14535452.html
Copyright © 2011-2022 走看看