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

关于Mysql的学习三(事务)

概念

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

操作方式

方式一:隐式(推荐)
  • 开启事务  

START TRANSACTION 或 BEGIN;
  • 提交事务

    COMMIT;

  • 回滚事务

    ROLLBACK;

方式二:显式
  • 查看事务提交方式

    SELECT @@AUTOCOMMOT;

  • 设置事务提交方式,1为自动提交,0为手动提交,只对当前会话有效

    AUTOCOMMIT1 (开启) 时你执行的每一条 SQL 语句(如 INSERT, UPDATE, DELETE)都会被当作一个独立的事务(Transaction)并立即自动提交

    关闭自动提交是进行事务管理的核心。它允许你将多个 SQL 语句组合成一个“原子”操作单元

    SET @@AUTOCOMMIT = 0;

  • …(此处注册相关语句到事务中)

  • 提交事务

    COMMIT;

  • 回滚事务

    ROLLBACK;

事务四大特性

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

  • 一致性(Consistency) : 事务完成时,必须使所有的数据保持一致性

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

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

并发事务问题

问题描述
脏读一个事务读到另外一个事务还没有提交的数据
不可重复读一个事务先后读取同一条记录,但是两次读取的数据不同,称之为不可重复读
幻读一个事务按照某个范围条件查询数据,两次查询的结果行数不同

事务隔离级别

读未提交 (Read Uncommitted):

  • 啥也解决不了。允许脏读、不可重复读、幻读。

读已提交 (Read Committed):

  • 解决了:脏读。

  • 仍可能:不可重复读、幻读。

  • (这是 Oracle, SQL Server 等数据库的默认级别)

可重复读 (Repeatable Read):

  • 解决了:脏读、不可重复读。

  • 仍可能:幻读(理论上)。

  • (这是 MySQL (InnoDB) 的默认级别。但注意:MySQL 通过 Next-Key Locking 技术,在很大程度上也解决了幻读。)

可串行化 (Serializable):

  • 解决了:脏读、不可重复读、幻读。

  • 通过强制事务排队执行,完全避免了并发问题,但性能最差。

http://www.dtcms.com/a/537741.html

相关文章:

  • hot100面试150——十二周
  • 免费网站模板psd崇明装修公司哪家好
  • 公司做网站的申请上海热点新闻
  • 《Redis 开发与运维》学习笔记[特殊字符]
  • 上海网站建设公司电网页拖拽设计工具
  • cdn网站加速有用吗网页游戏传奇霸主攻略
  • 保护你的创意!让图片拥有盲水印[特殊字符][特殊字符]
  • NEFTUNE
  • 西安优化网站技术徐州市网站开发
  • 泉州网站建设电话网站地图怎么做、
  • 二十二、DevOps:基于Tekton的云原生平台落地(三)
  • 搜狗网站收录入口万网公司注册网站
  • CUDA中__restrict__关键字的使用
  • 做热图的网站1分钟视频制作报价明细
  • 企业为什么做网站优化推广张掖市作风建设年活动网站
  • 未来做那个网站能致富爱站工具包
  • 建设一个网站系统要多久个人建站系统
  • 汽车紧固技术加速进化,推动汽车产业迈向高质量制造新阶段
  • AI结对编程:人机共创新纪元
  • 网站建设自动适应功能wordpress 开源吗
  • 专业的网站设计师房管局 网站做房查
  • 受欢迎的集团网站建设xxx网站建设与优化推广
  • 东莞市手机网站建设品牌建设项目自主验收公示的网站
  • Matplotlib指南:从入门到出版级数据可视化
  • 央企门户网站哪家做的最好seo技术顾问
  • 合肥专业做网站做网站的公司经营范围怎么写
  • 有个网站做彩盒的香奈儿网站建设策划书
  • 后台系统点击登录按钮直接跳转到目标路由下,而不是首页
  • Web Services 平台元素
  • 建站系统推荐做的高大上的网站