InnoDB 给 MySQL 提供了具有事务(commit)、回滚(rollback)和崩溃修复能力(crash
recovery capabilities)的事务安全(transaction-safe (ACID
compliant))型表。InnoDB
提供了行锁(locking on row level),提供与 Oracle 类型一致的不加锁读取(non-locking read in SELECT
s)。这些特性均提高了多用户并发操作的性能表现。在InnoDB表中不需要扩大锁定(lock
escalation),因为 InnoDB 的列锁定(row level locks)适宜非常小的空间。InnoDB 是 MySQL 上第一个提供外键约束(FOREIGN
KEY
constraints)的表引擎。
InnoDB 的设计目标是处理大容量数据库系统,它的 CPU 利用率是其它基于磁盘的关系数据库引擎所不能比的。
在技术上,InnoDB 是一套放在 MySQL 后台的完整数据库系统,InnoDB 在主内存中建立其专用的缓冲池用于高速缓冲数据和索引。 InnoDB 把数据和索引存放在表空间里,可能包含多个文件,这与其它的不一样,举例来说,在 MyISAM 中,表被存放在单独的文件中。InnoDB 表的大小只受限于操作系统的文件大小,一般为 2 GB。
在http://www.innodb.com/上可以找到 InnoDB 最新的信息。InnoDB 手册的最新版本总是被放置在那里,并且在那里可以得到 InnoDB 的商业许可(order commercial licenses)以及支持。
InnoDB 现在(2001年十月)在一些大的需高性能的数据库站点上被使用。著名的 Internet 新闻站点 Slashdot.org 就是使用的 InnoDB。 Mytrix, Inc. 在 InnoDB 表上存储了超过 1 TB 的数据,而且另外的一个站点在 InnoDB 表上处理着平均每秒 800 次的插入/更新的负载。
在 MySQL 的源代码中,从 3.23.34a 开始包含 InnoDB 表引擎,并在 MySQL -Max 的二进制版本中激活。
为了使用 InnoDB 表引擎,必须在‘my.cnf’或‘my.ini’文件中详细指定
InnoDB 的启动配置。最小的修改方法就是在 [mysqld]
区中加入下面一行:
innodb_data_file_path=ibdata:30M
但是为了得到最好的性能推荐详细指定配置选项,查看 2 InnoDB Startup Options。
InnoDB 以 GNU GPL 版本 2 的许可发布(1991年六月)。