大神的博客 讲的很详细的好博客 , mysql锁机制
第二位大神的博客:讲的很精简
这篇博客很详细的讲了:MySQL MVCC底层原理详解
MySQL的InnoDB存储引擎默认事务隔离级别是RR(可重复读),是通过 "行级锁+MVCC"一起实现的,正常读的时候不加锁,写的时候加锁。而 MCVV 的实现依赖:隐藏字段、Read View、Undo log。
数据库实现事务隔离的方式,基本可以分为以下两种
:(看完下面可以理解:一般企业对外开放的项目用的都是第二种)一 种
是 :在读取数据前,对其加锁
,阻止其他事务对数据进行修改。另一种
是:读不加任何锁,通过一定机制生成一个数据请求时间点的一致性数据快照(Snapshot),并用这个快照来提供一定级别(语句级或事务级)的一致性读取。从用户的角度,好像是数据库可以提供同一数据的多个版本,因此,这种技术叫做数据多版本并发控制(MultiVersion Concurrency Control,简称MVCC
或MCC),也经常称为多版本数据库。