链接地址:http://hedengcheng.com/?p=771 1 背景 1 1.1 MVCC:Snapshot Read vs Current Read 2 1.2 Cluster Index:聚簇索引 3 1.3 2PL:Two-Phase Locking 3 1.4 Isolation
分类:
数据库 时间:
2016-03-18 10:46:10
阅读次数:
270
1 背景 1 1.1 MVCC:Snapshot Read vs Current Read 2 1.2 Cluster Index:聚簇索引 3 1.3 2PL:Two-Phase Locking 3 1.4 Isolation Level 4 2 一条简单SQL的加锁实现分析 5 2.1 组合一:
分类:
数据库 时间:
2016-03-16 20:47:31
阅读次数:
234
一、mysql的并发控制当有多个查询需要同时修改同一个数据,就会产生并发控制的问题。mysql可以在两个层面进行并发控制:服务器层和存储引擎层。mysql通过加锁实现并发控制:⑴锁有两类:读锁:共享锁,即一个读锁不会阻塞其它读锁,多个用户可同时读取同一个资源,而不互相干扰..
分类:
数据库 时间:
2016-03-13 06:41:22
阅读次数:
254
概述 为了提高并发MySQL加入了多版本并发控制,它把旧版本记录保存在了共享表空间,在事务未提交之前对应的行记录还是受到锁的限制,当事务提交之后对应的记录行就在缓存中被修改了记录也被持久化了,当刷新线程按一定的规律进行刷新的时候行的修改记录被刷新到了物理数据页中,并且共享表空间的中的旧版本记录页也被
分类:
数据库 时间:
2016-03-09 10:50:22
阅读次数:
263
innodb也实现了mvcc,对于非锁定行读取即非DML读取,也可以成为快照读龋在一个事物中,事物开始的时候,会被分配一个全局的事物id,即把当前系统版本号作为当前事物的事物id,这个当前系统版本号会随着因事物的开启,和数据的dml操作而递增。而表的每一行也有两个版本号,一个..
分类:
数据库 时间:
2016-02-19 19:13:01
阅读次数:
255
可能导致mysql优化器选择错误的执行计划的原因如下: A:统计信息不准确,mysql依赖存储引擎提供的统计信息来评估成本,但有的存储引擎提供的信息是准确的,有的引擎提供的可能就偏差很大,如:innodb因为其MVCC的架构,并不能维护一个数据表的行数的精确统计。 B:执行计划中的成本估算不等同于实
分类:
数据库 时间:
2016-02-03 10:41:58
阅读次数:
203
本文是介绍MySQL数据库InnoDB存储引擎重做日志漫游 00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC)。 - 事务的原子性(Atomicity) 事务中的所有操作,要么全部完
分类:
数据库 时间:
2016-01-29 20:58:58
阅读次数:
256
在MySQL中,redo、undo、binlog经常见,但很容易混淆这三者。redoundobinlog作用保持事务的持久性帮助事务回滚及MVCC的功能进行Point-In-Time的恢复及主从复制环境的建立产生主体InnoDBMySQLMySQL类型物理日志逻辑日志逻辑日志内容每个页的修改修改前的...
分类:
其他好文 时间:
2016-01-25 21:00:13
阅读次数:
217
以下为个人理解,如有错误,还望指正!!mysql的大多数事务型存储引擎实现的都不是简单的行级锁,基于提升并发性能的考虑,他们一般都同时实现了多版本并发控制,可以认为MVCC是行级锁的一个变种,但是它在很多情况下避免了加锁操作,因此开销更低,虽然实现机制有所不同,但大都实现了非阻塞的读操作,写操作也只...
分类:
数据库 时间:
2016-01-23 00:55:32
阅读次数:
182
本文是介绍MySQL数据库InnoDB存储引擎重做日志漫游00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC)。- 事务的原子性(Atomicity)事务中的所有操作,要么全部完成,要...
分类:
数据库 时间:
2016-01-11 10:21:49
阅读次数:
155