事务

作者: 一曲三月 | 来源:发表于2021-08-07 11:27 被阅读0次

    1,事务 TCL
    一个或者一组sql语句组成一个执行单元,要么全部执行,要么全部不执行。
    2,存储引擎
    mysql 中有很多存储引擎,比如innodb,myisam,memeory等
    其中innodb支持事务
    3,事务的ACID特性
    原子性:事务不可分割,要么全部执行,要么全部不执行
    一致性:事务使数据库数据从一个一致性状态变换到另一个一致性状态
    隔离性: 事务之间互不干扰
    持久性:事务对数据的改变是永久性的,
    4,事务分类
    隐式的事务,没有明显的开启关闭命令,比如insert,update等
    显示事务,事务具有开启关闭的命令
    前提:必须设置自动提交功能为关闭 set autocommit=0,只对该次事务起作用
    1,开启事务
    start transation
    2,编写执行sql语句
    3,关闭事务commit
    或者回滚 rollback
    5,事务的隔离
    多个事务出现的问题
    脏读:t1事务读到了t2事务修改但是未提交的数据,若t2回滚,则t1读取到的是临时的数据,一般针对更新
    不可重复读:t1再次读取的时候,不可以读取到临时的数据。事务不可以重复读取相同的数据
    幻读:一般针对插入和删除,在t1读取t2中提交后的表的字段时,t2有向同一个表中插入数据,t2再次读取t2提交后的同一个表的数据时,会和前一次读取的数据个数不同。
    隔离级别
    mysql支持4种隔离级别,oracle支持两种
    msyql默认隔离级别repeattable read 可重复读
    读未提交
    读已提交:一个事务在提交之前,可以读取到另一个提交的事务,会出现不可重复读的问题,脏读
    的问题
    可重复读: 一个事务在提交之前,不能读取到另一个提交的事务,所以不会出现不可重复读的问题。
    串行化: 事务进行串行化提交
    6,保存点 savepoint
    rollback to

    相关文章

      网友评论

          本文标题:事务

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