InnoDB存储引擎
InnoDB
是事务型数据库的首选引擎,支持事务安全表(ACID
),支持行锁定和外键,InnoDB
是默认的MySQL
引擎。InnoDB
主要特性有:
-
InnoDB
给MySQL
提供了具有提交、回滚和崩溃恢复能力的事务安全(ACID
兼容)存储引擎。InnoDB
锁定在行级并且也在SELECT
语句中提供了一个类似Oracle
的非锁定读。这些功能增加了多用户部署和性能。在SQL
查询中,可以自由地将InnoDB
类型的表和其他MySQL
的表类型混合起来,甚至在同一个查询中也可以混合。 -
InnoDB
是为了处理巨大数据量的最大性能设计。他的CPU
效率可能是任何其他基于磁盘的关系型数据库引擎锁不能匹配的。 -
InnoDB
存储引擎完全与MySQL
服务器整合,InnoDB
存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。InnoDB
将它的表和索引在一个逻辑表空间中,表空间可以包含数个文件(或原磁盘文件)。这与MyISAM
表不同,比如在MyISAM
表中每个表被存放在分离的文件中。InnoDB
表可以是任何尺寸,即使在文件尺寸被限制为2GB。 -
InnoDB
支持外键完整性约束。 - 存储表中的数据时,每张表的存储都按主键顺序存放,如果没有显示在表定义时指定主键,
InnoDB
会为每一行生成一个6字节的ROWID
,并以此作为主键。 -
InnoDB
被用在众多需要高性能的大型数据库站点上。InnoDB
不创建目录,使用InnoDB
时,MySQL
将在MySQL
数据目录下创建一个名为ibdata1
的10MB大小的自动扩展数据文件,以及两个名为ib_logfile0
和ib_logfile1
的5MB大小的日志文件。