栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

mysql事物和锁

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mysql事物和锁

 

 

持久性取决于:redolog两阶段提交 ,有个问题,如果mysql在写操作突然断电,那是不是数据就会丢失,那么mysql是如何保证数据不丢失的呢?

mysql性能卡在io,如果是随机读写那么效率低,需要寻址,如果是顺序读写没那么效率高,只需要在后面append即可。io也就类似c语言中的指针来操作文件,指针移动的过程。

 

wal:write ahead log

打个比喻:加入村里开了饭店,村里的人来吃饭,只记账在一个黑板中,当你饭店不忙的时候,把这些黑板的账务记录在你真实的本子中

问题1:redolog和undolog谁先写谁后写?

假设先写redolog后写undolog那么会导致2台数据库数据不一致

那么先写undolog厚些redolog结果也是数据不一致,如何根治这两种情况呢?

 如果是prepare断电,那么数据不会提交,如果是commit那么数据就提交

核心思想也就是通过新增一个状态位来保证数据一致

 

 

 

 

 

 

 

 rc:读取到数据,每次进行快照读,都会生成新的readview

rr:读取不到数据,只有在当前事物第一次进行快照读的时候生成readview,之后的快照读都会沿用第一次生成的readview

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/928136.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号