MySQL——InnoDB事务
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | 事务:全部成功 或 全部失败! ---------------------------------------------------------------------------------------------- 1、原子性:全部成功或全部取消。 2、一致性:如果数据库在事务开始时处于一致状态,则在执行该事物期间将保留一致状态。 3、隔离性:事物之间不相互影响。 4、持久性:事务成功完成后,所做的所有改变将准确地记录在数据库中,所做的更改不会丢失。 ---------------------------------------------------------------------------------------------- 5、事务SQL控制语句: ----MySQL5.5之后默认自动提交模式,不需要begin或start transaction语句,默认开启autocommit模式。 ----可以通过以下命令修改关闭(0是关闭,1是开启): (1)临时生效: SET GLOBAL AUTOCOMMIT=0; ---- 所有新建会话 SET SESSION AUTOCOMMIT=0; ---- 当前会话 SELECT @@AUTOCOMMIT; ---- 查看设置结果 (2)永久生效: vim /etc/my .cnf [mysqld] AUTOCOMMIT=0 ----标记: 事务开始:begin / start transaction MySQL5.5之后,自动开启“开始”,不需要手工录入 事务结束:commit 事务撤销(回滚):rollback 6、导致事务提交的非SQL事务控制语句(隐式提交): DDL: alter / create / drop ... DCL: grant / revoke / set password ... 锁定语句: lock tables / unlock tables ... 7、事务日志redo redo: 重做日志,事务日志的一种。 (1)记录内存页的变化。 (2)是为了提高数据持久化的一种特性。 (4)redo工作原理: MySQL在对数据进行修改的时候,是在内存中进行的,提交后才会写到磁盘中, 同时在修改数据的过程中,redo会在数据修改的过程中,对更改信息定时写到磁盘 中,但是如果事务执行失败,redo会重做日志,将磁盘更改信息恢复到修改之前。 8、事务日志undo undo:回滚日志,事务日志的一种。 (1)undo工作原理: MySQL在对数据进行修改的时候,是在内存中进行的,提交后才会写到磁盘中, 在开始修改之前undo会对当前的状态进行“拍照”,同时undo会在数据修改 的过程中,对更改信息定时写到磁盘中,但是如果事务执行失败,undo会用 之前的“照片”覆盖更改信息,将磁盘更改信息恢复到修改之前。 9、LSN(redo /undo 中) LSN:日志版本号、或叫日志序列号 10、事务中的锁(锁定)(性能高于MyISAM)(高并发锁:行级锁---->可以只锁一行) 四种隔离级别: ----READ UNCOMMITTED 允许事务查看其它事务所进行的未提交更改 ----READ COMMITTED 允许事务查看其它事务所进行的已提交更改 ----REPEATABLE READ*** 确保每个事务的 SELECT 输出一致 InnoDB的默认级别 ----SERIALIZABLE 将一个事务的结果与其它事务完全隔离 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现