zoukankan      html  css  js  c++  java
  • 事务

    1 创建账户数据库表

    CREATE TABLE account(
    id INT PRIMARY KEY AUTO_INCREMENT,
    name varchar(10),
    money DOUBLE
    )
    

    2 添加两条数据

    insert into account(name,money) values ('zhangsan',1000),('lisi',1000);
    

    3 准备工作,查看mysql是否开启自动提交事务

    select @@autocommit;
    image.png
    @@表示全局变量,1表示开启,0表示关闭

    4 取消自动提交

    set @@autocommit = 0;

    5 事务的原理

    事务开启之后,所有的操作会临时保存在事务日志中,
    事务日志只有得到commit命令才会同步到数据表中,
    其它任何情况都会清空日志

    6 事务的四大特性

    原子性:事务是一个整体不可再分,要么成功,要么失败
    一致性:转账前2人总金额为200,转账后总金额还是200
    隔离性:事务与事务之间保持隔离状态,不相互影响
    持久性:一旦执行成功,对数据库的修改是持久的。

    7 事务并发可能引发的问题

    事务在操作的时候,不同的事务应该是保持隔离,互不影响,因为并发操作,多个用户访问同一个数据,可能引起并发访问问题。

    • 脏读:一个事务读取到了另一个事务尚未提交的数据
    • 不可重复读:两次多次读取的数据内容不一致,多是由于事务update引发的问题
    • 幻读:两次或多次读取的数量不一致,多是由于insert和delete引发的

    8 事务的四种隔离级别mysql

    级别 引发的问题
    读未提交read uncommitted 脏读,不可重复读,幻读
    读已提交read committed 不可重复读,幻读
    可重复读repeatbale read 幻读
    串行化serializable 以上3个都解决了

    9 mysql事务隔离相关命令

    查询隔离级别
    select @@tx_isolation;
    设置隔离级别
    set global transaction isolation level 级别字符串指令

  • 相关阅读:
    迈安
    sql 迈安
    Python开发环境02 Windows平台命令行方式
    Python开发环境01 Mac平台命令行方式
    Python简史03 Python启示录
    Python简史02 Python的诞生
    Python简史01 Python的起源
    图书爬虫的进展
    爬虫方面的进展
    最近的进展
  • 原文地址:https://www.cnblogs.com/hellosiyu/p/12986125.html
Copyright © 2011-2022 走看看