学习高性能mysql

Posted zhangzhijian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习高性能mysql相关的知识,希望对你有一定的参考价值。

mysql 的InnoDB存储引擎实现的不是简单的行级锁,实现的是MVCC,多版本并发控制,可以理解成行级锁的一个变种。

InnoDB的MVCC是通过在每行纪录后面保存两个隐藏的列来实现的。
这两个列,一个是保存了行的创建时间,一个是保存了行的过期时间(删除时间),时间是用的系统的版本号来存储的。

在select时,InnoDB会根据两个条件组合检查每行纪录:

a、InnoDB只查找版本号小于等于当前事务版本号的数据行,这样可以确保这些读取的行,

要么是在这个事务开始前已经存在的,要么是在这个事务中插入或者修改过的。

b、行的删除行要么没定义,要么大于这个事务的版本号,这样可以确保事务读到的行,在事务开始之前未被删除。

只有同时满足这两个条件的数据行,才能作为返回的查询结果。

 

在Insert时,InnoDB为新插入的数据保存当前的版本号作为创建时间。

 

在Update时,InnoDB为更新这行数据的创建时间为当前版本号,同时保存当前版本号到 

以上是关于学习高性能mysql的主要内容,如果未能解决你的问题,请参考以下文章

MySQL《高性能MySQL》 学习笔记,第三章,服务器性能剖析

《高性能MySQL》学习笔记

学习高性能mysql

MySQL学习笔记之九:MySQL Replication

高性能MySQL之基础架构

高性能MySQL之第十五章 备份与恢复学习记录