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数据库最为常用的一种引擎,而Facebook、Google、Yaohoo 等公司的成功应用已经证明了InnoDB存储引擎具备的高可用、高性能
以及高可扩展性。在以后的章节我会根据《Mysql技术内幕 InnoDB存储引擎》给大家总结InnoDB,并加上自己的理解和一些查阅的资料。