InnoDB存储引擎MVCC实现原理

简单背景介绍

MySQL

MySQL是现在最流行的关系型数据库(RDB)的选择,为了应用程序提供可靠性数据存储,事务等功能。近些年来也成为了互联网公司的首选。在5.5版本后,默认使用InnoDB存储引擎。

MySQL架构

顶层是接入层,为不同语言实现接入,接入层负责权限校验,线程池管理,线程管理。接下来是MySQL服务层,有SQL解析器,SQL优化器,数据缓冲,缓存。再接下来是存储引擎。最后是系统文件层。

InnoDB与MVCC

MySQL中的InnoDB存储引擎的特性有,默认级别的Repeatable Read,行级锁,实现了MVCC,Consistent nonlocking read(默认读不加锁,一致性非锁定读),Insert Buffer,Adaptive Hash Index,Double Write,Cluster Index。
上面举了这么多例子,说明InnoDB有很多特性,并且很快。
InnoDB中通过Undo Log实现了数据的多版本,而并发控制通过锁来实现。
Undo Log除了实现了MVCC之外,还提供了回滚的功能。

Redo log,Undo log, Bin log

MySQL InnoDB有很多日志,除了错误日志,查询日志还有很多与持久化相关的日志。

你可能感兴趣的:(mysql,mysql)