当前位置: 首页 > news >正文

MySQL的事务

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8" />

    <title>MySQL的事务</title>

</head>

<body>

    <!--

        事务是一组操作的集合,它是一个不可分隔的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。

        默认MySQL的事务是自动提交的,也就是说,当执行一条DML语句,MySQL会立即隐式的提交事务。

     -->

     <!-- 事务的操作

        方式一:

        查看/设置事务提交方式

        select @@autocommit;

        set @@autocommit = 0;

        提交事务

        事务正常,执行commit提交

        commit;

        回滚事务(结束该事务)

        事务异常,执行rollback回滚

        rollback;

        方式二:

        开启事务

        start transaction或begin;

        提交事务

        commit;

        回滚事务(结束该事务)

        rollback;

    -->

    <!--事务四大特性

        原子性(Atomicity):事务是不可分隔的最小操作单元,要么全部成功,要么全部失败。

        一致性(consistency):事务完成时,必须使所有的数据都保持一致状态

        隔离性(isolation):数据库系统提供的隔离机制,保证事务在不受外部并发操作的影响的独立环境下运行

        持久性(durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的

    -->

     <!-- 并发事务问题

        脏读:一个事务读到另外一个事务还没有提交的数据

        不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同,称为不可重复读

        幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现该行数据已存在,好像出现了‘幻影’

    -->

    <!-- 事务的隔离级别

        解决并发事务问题

        read uncommitted:解决不了脏读,不可重复读,幻读

        read committed:解决了脏读,解决不了不可重复读,幻读

        repeatable read(默认):解决了脏读,不可重复读,解决不了幻读

        serializable:解决了脏读,不可重复读,幻读

        查看事务隔离级别

        select@@transaction_isolation;

        设置事务隔离级别

        set [session|global] transaction isolation level {read uncommitted | read commited | reqeatable read | seriakizable}

        注意:事务的隔离级别越高,数据越安全,但是性能越低。

        -->

</body>

</html>

http://www.lryc.cn/news/253651.html

相关文章:

  • go-carbon v2.2.14 发布,轻量级、语义化、对开发者友好的 Golang 时间处理库
  • 解决 IIS HTTP 403 错误问题
  • 字符设备驱动基础—并发控制
  • 5-Tornado入门、程序的原理图、tornado不能使用同步代码的演示
  • mysql原理--InnoDB记录结构
  • ES6基础语法
  • java8 常用code
  • docker 镜像管理
  • Jira 中如何修改时间为绝对时间
  • 班级查分软件制作教程:老师必备技能!
  • Linux 的性能调优的思路
  • 如何通过webdriver禁用浏览器定位功能
  • 网卡bonding绑定
  • flink运行报Exception in thread “main“ java.lang.IllegalStateException
  • 易点易动设备管理系统--提升设备备品备件管理效率的工具
  • 第二十一章——网络通信
  • Siemens-NXUG二次开发-打开与关闭prt文件[Python UF][20231206]
  • 2015年五一杯数学建模C题生态文明建设评价问题解题全过程文档及程序
  • java:slf4j、log4j、log4j2、logback日志框架的区别与示例
  • Mysql学习查缺补漏----02 mysql之DCL 数据控制语言
  • 【Flink基础】-- 延迟数据的处理
  • 通过keepalived+nginx实现 k8s apiserver节点高可用
  • JavaScript 数组
  • 【数据结构】二叉树的实现
  • 振弦采集仪在土体与岩体监测中的可靠性与精度分析
  • C语言进阶之路-指针、数组等混合小boss篇
  • 【矩阵论】Chapter 7—Hermite矩阵与正定矩阵知识点总结复习
  • Golang语言基础之切片
  • SpringCloud-服务消费者Fegin调用时无法获取异常信息
  • re:invent 2023 Amazon Q 初体验