本文共 2889 字,大约阅读时间需要 9 分钟。
一、 介绍
是 上第一个提供外键约束的引擎,除了提供事务处理外, 还支持行锁,提供和 Oracle 一样的一致性的不加锁读取,能增加并发读的用户数量并提高性能,不会增加锁的数量。
InnoDB 的设计目标是处理大容量数据时最大化性能,它的 CPU 利用率是其他所有基于磁盘的关系数据库引擎中最有效率的。
InnoDB 是一套放在 后台的完整数据库系统,InnoDB 有它自己的缓冲池,能缓冲数据和索引,InnoDB 还把数据和索引存放在表空间里面,可能包含好几个文件,这和 MyISAM 表完全不同,在 MyISAM 中,表被存放在单独的文件中,InnoDB 表的大小只受限于操作系统文件的大小,一般为 2GB。
如果您的是使用二进制版本安装的,那么可能您需要手工启用。如果你使用源码版本下载,自己编译的话,需要采用 –with-plugins=innobase 选项:
./configure –prefix=/usr/local/mysql –with-extra-charsets=all –enable-thread-safe-client –enable-assembler –with-charset=utf8 –enable-thread-safe-client –with-extra-charsets=all –with-big-tables –with-readline –with-ssl –with-embedded-server –enable-local-infile --with-plugins=innobase
二、检查当前MySQL支持的数据库引擎
在MySQL的命令行模式下,可以用 show engines\G; 命令查看各个引擎的状态
mysql> show engines\G *************************** 1. row *************************** Engine: MyISAM Support: DEFAULT Comment: Default engine as of MySQL 3.23 with great performance *************************** 2. row *************************** Engine: MEMORY Support: YES Comment: Hash based, stored in memory, useful for temporary tables *************************** 3. row *************************** Engine: InnoDB Support: YES Comment: Supports transactions, row-level locking, and foreign keys *************************** 4. row *************************** Engine: BerkeleyDB Support: NO Comment: Supports transactions and page-level locking *************************** 5. row *************************** Engine: BLACKHOLE Support: YES Comment: /dev/null storage engine (anything you write to it disappears) *************************** 6. row *************************** Engine: EXAMPLE Support: NO Comment: Example storage engine *************************** 7. row *************************** Engine: ARCHIVE Support: YES Comment: Archive storage engine *************************** 8. row *************************** Engine: CSV Support: NO Comment: CSV storage engine *************************** 9. row *************************** Engine: ndbcluster Support: NO Comment: Clustered, fault-tolerant, memory-based tables *************************** 10. row *************************** Engine: FEDERATED Support: YES Comment: Federated MySQL storage engine *************************** 11. row *************************** Engine: MRG_MYISAM Support: YES Comment: Collection of identical MyISAM tables *************************** 12. row *************************** Engine: ISAM Support: NO Comment: Obsolete storage engine 12 rows in set (0.00 sec)这里可以看到
Engine: InnoDB Support: YES Comment: Supports transactions, row-level locking, and foreign keys 也就是说,MySQL已经支持了InnoDB引擎,但是并不是作为默认数据库引擎。三、启用InnoDB的方法
1、关闭mysql的服务
2、修改/etc/my.cnf
将default-storage-engine=InnoDB前的注释(#)去掉
将skip-innodb这行注释(加上#) 将my.cnf中关于innodb的配置前面的#去掉3、保存后重启mysql服务(如果启动服务时失败,可以试着将innodb日志文件清除 rm ib* ,然后重新启动)
本文出自 “” 博客,请务必保留此出处