MySQL性能优化,自己的
1.事务隔离的几种级别
未提交读;读提交;可重复读;串行化
未提交读可能会出现脏读,读提交会出现不可重复读,可重复读会出现幻读。针对几种情况的解决方案和原理:
脏读:采用读提交事务隔离级别,一个事务每次读取的都是已经提交过的。
不可重复读:采用可重复读隔离级别,原理是MVCC,事务A前后读取同一次事务前后读取数据都是一致的,事务A事务开始和结束前即使事务B进行了更新,A读取都是同一个。
幻读:采用串行化,锁行的形式。
2.什么是MVCC(版本控制):是通过保存某个时间节点的快照实现的。也就是说。不管每个事务开始多长时间,直到结束,该事务看到的时间都是事务开始前一刻的数据,但是不同事务开始时间不一样,事务开始后对应同一个表同一时间节点看到的可能不一样。举个例子说:
A事务在某时刻开始,执行多次同条件查询,开始事务到提交前,查询结果数据都是一样的,但是B事务稍微延迟了一下执行与A相同的操作,A和B看到的数据可能不一样。
3.InnoDB怎么工作的呢?
其实就是在每行后面保存了两个隐藏列,一个是行的创建时间,另外一个是过期时间,保存的并不是时间而是版本号,每开启一个事务,系统版本号都会字段递增,事务开始时刻的系统版本号会作为事务的版本号,用来和查询到的查询到的每行记录的版本号进行比较。那么读提交的事务隔离级别MVCC又是怎么做的呢?
- 针对插入操作:为新插入行保存当前系统版本号作为行版本号
- 针对delete:为删除行保存当前系统版本行作为行删除标识
- 针对更新:插入一行新的数据,保存当前系统版本号,同时保存当前系统版本号到原来的行作为删除的标识。
======
有空再更新,学习的时候记录的,有问题请指正
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfjgkic
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01