InnoDB存储引擎

InnoDB存储引擎支持事务,其设计目标主要是面向在线事务处理(①OLTP)的应用。其特点是是行锁设计、支持外键,并支持类似Oracle的非锁定读,即默认读取操作不会产生锁。从Mysql数据库5.5.8版本开始,InnoDB 是默认的存储引擎。

InnoDB通过使用多版本并发控制(MVCC)来获得高并发性,并实现SQL标准的4种隔离级别,默认为REPEATABLE 级别。同时,使用一种被称为next-key locking的策略来避免幻读(phantom)现象的产生。除此之外,InnoDB存储引擎还提供插入缓冲(insert buffer)、二次写(double write)、自适应哈希索引(adaptive hash index)、预读(read ahead)等高性能和高可用功能。

对于表中数据的存储,InnoDB存储引擎采用了聚集(clustered)的方式,因此每张表的存储都是按照主键的顺序进行存放。如果没有显示地在表定义时指定主键,InnoDB存储引擎会为每一行生成一个6字节的ROWID,并以此为主键。

InnoDB存储引擎是Mysql数据库最为常用的一种引擎,其处理插入/更新操作的速度平均为800次/秒,而Facebook、Google、Yaohoo 等公司的成功应用已经证明了InnoDB存储引擎具备的高可用、高性能

以及高可扩展性。在以后的章节我会根据《Mysql技术内幕 InnoDB存储引擎》给大家总结InnoDB,并加上自己的理解和一些查阅的资料。 

InnoDB存储引擎的版本

              InnoDB各版本功能对比

版本 功能
老版本InnoDB 支持ACID、行锁设计、MVCC
InnoDB1.0.x② 增加了compress(压缩)和dynamic(动态)页格式
InnoDB1.1.x 增加了Linux AIO(异步IO)、多回滚段③
InnoDB1.2.x  增加了全文索引支持、在线索引添加

                   


① 

(OLTP)
On-Line Transaction Processing联机事务处理过程
也称为面向交易的处理过程,其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一。

从Mysql5.1版本时,Mysql数据库允许存储引擎开发商以动态方式加载引擎,所以InnoDB1.0.x也称InnoDB plugin(插件)

InnoDB现在可以使用多个回滚段来提升性能和可扩展性,并且能够极大地增加并发事务处理数量,而之前的几个 InnoDB版本最多只能处理 1023个并发事务处理操作。

现在 MySQL5.5 可以支持高达 128 KB 的并发事务处理操作,创建回滚数据(undo data)(来自插入、更新和删除操作)。这种改进措施减少了在单个回滚段上的互斥争用,增加了吞吐量。

补充

DDL:数据库模式定义语言,关键字:create
DML:数据操纵语言,关键字:Insert、delete、update
DCL:数据库控制语言 ,关键字:grant、remove
DQL:数据库查询语言,关键字:select
原文地址:https://www.cnblogs.com/tanwt/p/8526150.html