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提交
     
     

    事务并发的三大问题:

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

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

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

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

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

    解决的问题:

    事务隔离级别的解决方案

  • 相关阅读:
    VC++:创建,调用Win32静态链接库
    VC++:创建,调用Win32动态链接库
    C++生成和解析XML文件
    C++实现16进制字符串转换成int整形值
    一个好隐蔽的C/C++代码bug
    【C++札记】标准模板库string
    Rabbitmq C++客户端 Rabbitmq Client
    C++:标准模板库map
    C++:标准模板库vector
    C++:标准模板库(STL)
  • 原文地址:https://www.cnblogs.com/take-it-easy/p/14535452.html
Copyright © 2011-2022 走看看