高性能Mysql学习笔记之第一章
来源:互联网 发布:文明6 mac 编辑:程序博客网 时间:2024/05/18 03:00
幻读:所谓幻读,指的是当某个事务在读取某个范围内的记录时,另外一个事务又在该范围内插入了新的记录,当之前的事务再次读取该范围的记录时,会产生幻行。InnoDb通过多版本并发控制解决了幻读的。
脏读:事务可以读取未提交的数据,这也被称为脏读。
MVVC:可以认为MVVC是行级锁的一个变种,但是它在很多情况下避免了加锁操作,因此开销更低。虽然实现机制有所不同,但大都实现了非阻塞的读操作,写操作也只锁定必要的行。MVVC的实现,是通过保存数据在某个时间点的快照来实现的。
下面通过InnoDB的简化版行为来说明MVCC是如何工作的。
InnoDB的MVCC,是通过在每行记录后面保存两个隐藏的列来实现的。这两个列,一个保存了行的创建时间(系统的版本号),一个保存行的过期时间(或删除时间)。每开始一个新的事务,系统版本号都会自动递增。事务开始时刻的系统版本号会作为事务的版本号,用来和查询到的每行记录的版本号进行比较。
MVCC只在REPEATABLE READ和READ COMMITTED两个隔离级别下工作。其它两个隔离级别都和MVCC不兼容,因为READ UNCOMMITTED总是读取最新的数据行,而不是符合当前事务版本的数据行。而SERIALIZABLE则会对所有的读取行都加锁。
阅读全文
0 0
- 高性能Mysql学习笔记之第一章
- 高性能MySQL笔记-第一章
- 高性能MySQL第一章笔记
- 《高性能mysql 第一章》刷书笔记
- 《高性能MySQL》第一章
- 高性能MYSQL--第一章
- MySQL高性能学习笔记
- 高可用设计之MySQL状态性能监控-【学习笔记】
- 高性能MySql学习笔记(一)
- 高性能MySQL学习笔记(二)
- mysql高性能学习笔记整理
- 高性能MySQL学习笔记(2)
- 《高性能MySql》学习笔记 持续更新
- 《高性能MySQL》学习笔记一
- 《高性能MySQL》学习笔记二
- 《高性能MySQL》学习笔记三
- 《高性能MySQL》学习笔记四
- 高性能MySQL笔记之基本概念
- 肿瘤基因检测的解读流程
- Spring 如何在xml中配置Bean?
- Linux下安装多个apache
- 导入项目出现:Could not find com.android.support.constraint:constraint-layout:2.0.0-alpha8的解决方法
- file_upload上传
- 高性能Mysql学习笔记之第一章
- oj
- codeforces 901B GCD of Polynomials (数论+构造)
- placeholder---获取焦点时清空、修改默认样式
- 韦东山--关于嵌入式学习
- 同时装了Python3和Python2,怎么用pip?
- 如何使用叉叉-net
- Linux中rz命令无法使用
- 区块链 HyperLedger Fabric安装