Mysql事务原理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Mysql事务原理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1277字,纯文字阅读大概需要2分钟。
内容图文
![Mysql事务原理](/upload/InfoBanner/zyjiaocheng/862/e05bb83db3d64d1cbdca2899d6549f39.jpg)
概述
事务是基于重做日志文件(redo log)和回滚日志(undo log)实现的。
每提交一个事务必须先将该事务的所有日志写入到重做日志文件进行持久化,数据库就可以通过重做日志来保证事务的原子性和持久性。
每当有修改事务时,还会产生undo log,如果需要回滚,则根据undo log 的反向语句进行逻辑操作,比如insert 一条记录就delete 一条记录。undo log 主要实现数据库的一致性,还可以用来实现MVCC
详解
事务操作原理:事务开启之后,所有的操作都会临时保存到事务日志,事务日志只有在得到commit命令才会同步到数据表,其他任何情况都会被清空(rollback,断电,断开连接)
客户端连接认证服务端,验证身份成功后建立连接,同时为当前用户当次连接开启一个临时的事务日志.
不开事务情况:当用户执行sql写操作的时候,服务器会接收sql语句并且执行sql语句,结果直接写入到数据表里面,然后直接同步到数据库里面
开启事务: 系统接收到 start transaction 指令之后,会改变原来的操作机制,后续的所有操作(写操作),会先写入到临时日志文件,如果有SQL操作,服务端先接收sql语句,执行sql语句,结果先写入到临时日志文件,此时临时日志文件会保存sql操作结果,假设有查询操作结果,会从数据表查询,经过临时日志文件结果进行加工返回.
事务结束: commit 或者rollback,都会清空临时的日志文件,commit会同步到数据表,rollback是直接清空
所以,只有服务端接收到commit命令之后才会将临时日志文件的sql操作结果保存到数据库中.如果断开连接或者是rollback了,sql操作结果不会保存到数据库里面,临时文件会自动清空.
内容总结
以上是互联网集市为您收集整理的Mysql事务原理全部内容,希望文章能够帮你解决Mysql事务原理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。