MySQL第十四章---InnoDB存储引擎(一)InnoDB简介

14.1.1 使用InnoDB表的好处
14.1.2 InnoDB表的最佳实践
14.1.3 验证InnoDB是默认存储引擎
14.1.4 使用InnoDB进行测试和基准测试
14.1.5 关闭InnoDB

InnoDB是一种兼顾了高可用性和高性能的通用存储引擎。在MySQL 5.7中,InnoDB是默认的MySQL存储引擎。如果你在创建表的时候没有指定存储引擎(建表的时候加ENGINE=),会默认创建一个使用InnoDB存储引擎的表,除非你配置了其他默认的存储引擎。

InnoDB的主要优势
  • 它的DML操作遵循ACID模型,并且具有事务提交、回滚和故障修复的功能来保护用户的数据。有关更多信息,请参见第14.2节“ InnoDB和ACID模型”。
  • 行级锁定和Oracle风格的一致读取可提高多用户并发性和性能。有关更多信息,请参见第14.7节“ InnoDB锁定和事务处理模型”。
  • InnoDB表将数据存储在磁盘上,基于主键来优化查询。每个InnoDB表都有一个称为聚合索引的主键索引,该索引使数据以最小化I / O主键查找。有关更多信息,请参见第14.6.2.1节“聚集索引和二级索引”。
  • 为了保持数据完整性,InnoDB支持FOREIGN KEY约束。使用外键检查插入,更新和删除操作,以确保它们不会导致不同表之间的不一致。有关更多信息,请参见第14.6.1.5节“ InnoDB和外键约束”。

表14.1 InnoDB存储引擎功能

功能 是否支持
B-tree 索引 Yes
备份/时间点恢复(在服务器而不是在存储引擎中实现。) Yes
集群数据库支持 No
聚合索引 Yes
压缩数据 Yes
数据缓存 Yes
数据加密 Yes(通过加密功能在服务器中实现;在MySQL 5.7和更高版本中,支持静态数据表空间加密。)
支持外键 Yes
全文搜索索引 Yes(MySQL 5.6和更高版本提供InnoDB对FULLTEXT索引的支持。)
地理坐标数据类型支持 Yes
坐标索引支持 Yes(在MySQL 5.7和更高版本中提供了InnoDB对地理坐标索引的支持。)
哈希索引 No(InnoDB在内部将哈希索引用于其“自适应哈希索引”功能。)
索引缓存 Yes
锁的颗粒度 Row
MVCC Yes
支持复制(在服务器中实现而不是在存储引擎中。) Yes
储存限制 64TB
T-tree 索引 No
事务 Yes
更新数据字典的统计信息 Yes

如果想要对比InnoDB与MySQL提供的其他存储引擎的功能,请参阅第15章中的“存储引擎功能”表,里面有其他供选择的存储引擎。

InnoDB增强功能和新功能

有关InnoDB增强功能和新功能的信息,请参阅:

  • 第1.4节 “ MySQL 5.7的新增功能”中的InnoDB增强功能列表。
  • 发行说明。
其他InnoDB信息和资源
  • 有关与InnoDB相关的术语和定义,请参见MySQL词汇表。
  • 有关InnoDB存储引擎的论坛,请参见MySQL Forums :: InnoDB。
  • InnoDB的发布与MySQL在相同的GNU GPL许可证版本2(1991年6月)下发布。 有关MySQL许可的更多信息,请参见http://www.mysql.com/company/legal/licensing/。
发布了86 篇原创文章 · 获赞 14 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43365369/article/details/102621031