首页 > 代码库 > 14.1节:InnoDB简介
14.1节:InnoDB简介
14.1.1. InnoDB-MySQL默认的存储引擎
14.1.2. 检测InnoDB的可用性
14.1.3. 关闭InnoDB
InnoDB是一个兼顾高可靠性和高性能的通用存储引擎。在MySQL5.5中InnoDB是默认的存储引擎。在MySQL5.7中
执行Create Table语句的时候如果不是用engine=语句来指定所使用的存储引擎,那么默认将会使用InnoDB存储引擎。如
下图1实验结果即可证明
mysql> create table innodb( -> id int primary key, -> name varchar(20) -> ) -> ;Query OK, 0 rows affected (1.02 sec)mysql> show create table innodb;+--------+-----------------------------------------------------------------------------------------------------------------------------------------------+| Table | Create Table |+--------+-----------------------------------------------------------------------------------------------------------------------------------------------+| innodb | CREATE TABLE `innodb` ( `id` int(11) NOT NULL, `name` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 |+--------+-----------------------------------------------------------------------------------------------------------------------------------------------+1 row in set (0.01 sec)
从上面的实验结果可以看出,create table的时候默认是innodb存储引擎的。
InnoDB的优势:
使用InnoDB引擎建的表有如下的优势:
1. 使用InnoDB引擎建的表是DML(delete,update,insert)操作遵循ACID模型;支持事务操作,如commit,
rollback,还支持故障恢复。所有这些都能很好的保护用户的数据。
2. InnoDB存储引擎提供了行级锁,也提供了跟oracle类似的一致性读。这个特性可以大大提高多用户并发,提升
MySQL的性能。
3. InnoDB的表根据主键来组织数据,这样能优化查询效率(聚簇索引)
4. 为了保证数据的完整性,InnoDB支持外键约束。插入,更新,删除数据的时候,就会检查外键约束
5. 你可以很自由的混合使用InnoDB引擎的表和其他引擎建立的表,甚至可以在同一条sql语句中混用,比如,你可以
对一个Innodb的表和一个Memory引擎的表做join操作。
6. InnoDB已经为大数据量处理做了很大程度的优化,他的性能很少能有其他的基于硬盘存储的数据可可以比得上的
InnoDB引擎的特征
InnoDB存储引擎在主存中会有缓冲池来缓存数据和索引。可以通过设置innodb_file_per_table为启用状态使InnoDB的每
张表和该表的索引存储到单独的文件。当通过innodb_file_per_table被禁用的时候,InnoDB会把所有的表及索引都存储到system
tablespace(可能会包含几个文件或者磁盘分区)。InnoDB可以处理大批量数据,尽管有些操作系统有单个文件大小2G的限制。
InnoDB的增强功能和新特性
在MySQL5.7中InnoDB的新特性可以参考如下文章(还没写。。)