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

MySQL笔记——事务

事务

    • **控制事务**
    • **并发事务问题**
    • 事务隔离级别

学习黑马MySQL课程,记录笔记,用于复习。

控制事务

方式一:

#查看和设置事务提交方式
select @@autocommit ;
set @@autocommit = 0 ;
#提交事务
commmit;
#回滚事务
rollback;

方式二:

#查看和设置事务提交方式
start transaction;
#提交事务
commmit;
#回滚事务
rollback;

事物的四大特性(ACID)

  • 原子性(Atomicity):事务是不可分割的最小操作单元,要么全部成功,要么全部失败。
  • 一致性(Consistency):事务完成时,必须使所有的数据都保持一致状态。
  • 隔离性(Isolation):数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行。
  • 持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的。

并发事务问题

问题描述
赃读一个事务读到另外一个事务还没有提交的数据
不可重复读一个事务先后读取同一条记录,但两次读取的数据不同
幻读一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,
又发现这行数据已经存在,好像出现了 “幻影”

解决不可重复读是指:在我们默认已经解决了不可重复读的问题之后,事务A的第一步和第三步查询的结果为一致的(即都为空),查询都为空但是插不进去数据,就好像有个“幻影”这种现象叫幻读

事务隔离级别

隔离级别脏读不可重复读幻读
Read uncommitted
Read committed×
Repeatable Read(默认)××
Serializable×××

查看事务隔离级别

select @@TR

设置事务隔离级别

set [ session | global ] transaction isolation level [ read uncommitted |read committed | repeatable read| serializable]

相关文章:

  • 分享HTML显示2D/3D时间
  • Unity3d 游戏暂停(timeScale=0)引起的deltaTime关联的系列问题解决
  • [c++刷题]贪心算法.N01
  • 揭秘无局放电源:定义、工作原理及其在工业设备中的重要性
  • 鸿蒙开发:【进程模型概述】
  • PHP杂货铺家庭在线记账理财管理系统源码
  • kettle无法启动问题_PENTAHO_JAVA_HOME
  • Dify知识库接入微信
  • 解释React中的“端口(Portals)”是什么,以及如何使用它来渲染子节点到DOM树以外的部分。
  • 亚足联官方公布18强赛抽签时间及规则,国足确认位列第五档,你们觉得国足能进世界杯吗?
  • 【代码仓库提交大文件,用Git LFS!】
  • 算法训练营day66-孤岛总面积-沉没孤岛-水流问题-建造最大岛屿
  • Xcode will continue when the operation completes
  • MySQL 数据库 Navicat Premium 16.01 安装教程
  • Zookeeper基础教程
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • Codepen 每日精选(2018-3-25)
  • Debian下无root权限使用Python访问Oracle
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • laravel 用artisan创建自己的模板
  • leetcode讲解--894. All Possible Full Binary Trees
  • PAT A1092
  • SpiderData 2019年2月16日 DApp数据排行榜
  • Vue2 SSR 的优化之旅
  • VuePress 静态网站生成
  • 大主子表关联的性能优化方法
  • 服务器从安装到部署全过程(二)
  • 工程优化暨babel升级小记
  • 记一次删除Git记录中的大文件的过程
  • 警报:线上事故之CountDownLatch的威力
  • 马上搞懂 GeoJSON
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 跳前端坑前,先看看这个!!
  • 翻译 | The Principles of OOD 面向对象设计原则
  • 组复制官方翻译九、Group Replication Technical Details
  • ​比特币大跌的 2 个原因
  • ​水经微图Web1.5.0版即将上线
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • %check_box% in rails :coditions={:has_many , :through}
  • (4)(4.6) Triducer
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (Java入门)学生管理系统
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (void) (_x == _y)的作用
  • (补充)IDEA项目结构
  • (分布式缓存)Redis分片集群
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (七)Appdesigner-初步入门及常用组件的使用方法说明
  • (四)React组件、useState、组件样式
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .net生成的类,跨工程调用显示注释
  • .NET性能优化(文摘)