数据库
文章平均质量分 78
Twenty__Seven
年轻嘛~就应该站在风口浪尖~
展开
-
[MySQL]undo日志
1.为什么会有undo日志 undo日志存在的意义何在? undo日志存在的意义就是为了保证事务的原子性. 在innodb进行记录的增删改时,都需要把相应的undo日志记下来. 它所解决的场景就是:当有些时候,事务偏偏执行到了一半就出问题了.这时候对于刚才已经执行了的语句怎么办?当然是回滚了, 设计数据库的大佬为了回滚而记录的东西被称为撤销日志[undo log] 遵从WAL技术的原则,干啥都先写日志,有了操作日志那么回滚也就容易多了. 需要注意的是:除了SELECT操作之外 INSER原创 2021-12-30 18:18:37 · 806 阅读 · 0 评论 -
[MySQL]redo日志
1.引言 为了保证事务的持久性,一个很简单的方式就是在事务提交之前,将本次事务所做的修改操作都刷新到磁盘当中.但这种方式也存在着诸多的问题: 如果每一次更新都需要写入磁盘那么这个IO成本有点高. 随机IO刷新起来比较慢,一个事务可能包含多个语句,这些语句可能会造成多个页中的数据被修改,也可能这些页也不相连,就会导致需要进行多次随机IO[随机IO比顺序IO还慢],IO成本过高 其实,为了解决IO成本高的问题,MySQL提出了WAL技术(Write Ahead Log) WAL的核心思想在于: 先写.原创 2021-12-30 10:36:25 · 592 阅读 · 0 评论 -
[MySQL]事务
1.事务特性AICD 其实,事务的本质就是若干个数据库操作的集合.并且这些集合都满足AICD的特性. 1.1原子性Atomicity 一个事务数据库中的最小执行单位,不能再拆分啦. 事务中的操作要么全部执行成功,要么全部执行失败. 1.2隔离性Isolution 事务之间不相互影响. 比如:脏读,未提交读,幻读,不可重复度,都是事务不同的隔离级别所导致的问题.使得事务之间相互影响. 在保证数据操作满足原子性的同时,也要保证其他事务的执行不会影响到本次事务的执行. 1.3一致性Con原创 2021-12-29 10:15:31 · 582 阅读 · 0 评论