首页 > 代码库 > 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的新特性可以参考如下文章(还没写。。)