2025-03-24

17.1 InnoDB简介

  • 17.1.1 使用InnoDB表的优势
  • 17.1.2 InnoDB表的最佳实践
  • 17.1.3 验证InnoDB是否为默认存储引擎
  • 17.1.4 使用InnoDB进行测试和基准测试

InnoDB是一款通用的存储引擎,兼顾高可靠性和高性能。在MySQL 8.0中,InnoDB是MySQL的默认存储引擎。除非配置了其他默认存储引擎,否则在执行CREATE TABLE语句时,若未指定ENGINE子句,会创建InnoDB表。

InnoDB的主要优势

  • 它的DML(数据操作语言)操作遵循ACID模型,支持事务的提交、回滚和崩溃恢复功能,以保护用户数据。详见17.2节 “InnoDB和ACID模型”。
  • 行级锁和类似Oracle的一致性读提高了多用户并发处理能力和性能。详见17.7节 “InnoDB锁定和事务模型”。
  • InnoDB表在磁盘上对数据进行排列,以便基于主键优化查询。每个InnoDB表都有一个名为聚簇索引的主键索引,该索引对数据进行组织,从而最小化主键查找时的I/O操作。详见17.6.2.1节 “聚簇索引和辅助索引”。
  • 为维护数据完整性,InnoDB支持FOREIGN KEY(外键)约束。有了外键,在执行插入、更新和删除操作时会进行检查,以确保相关表之间的数据不会出现不一致情况。详见15.1.20.5节 “FOREIGN KEY约束”。

表17.1 InnoDB存储引擎功能

功能 支持情况
B树索引
备份/时间点恢复(在服务器中实现,而非存储引擎中)
集群数据库支持
聚簇索引
压缩数据
数据缓存
加密数据 是(通过服务器中的加密函数实现;在MySQL 5.7及更高版本中,支持静态数据加密)
外键支持
全文搜索索引 是(MySQL 5.6及更高版本支持FULLTEXT索引)
地理空间数据类型支持
地理空间索引支持 是(MySQL 5.7及更高版本支持地理空间索引)
哈希索引 否(InnoDB内部利用哈希索引实现自适应哈希索引功能)
索引缓存
锁定粒度 行级
多版本并发控制(MVCC)
复制支持(在服务器中实现,而非存储引擎中)
存储限制 64TB
T树索引
事务
更新数据字典统计信息

如需比较InnoDB与MySQL提供的其他存储引擎的功能,请参阅第18章 “替代存储引擎” 中的存储引擎功能表。

InnoDB的增强和新特性

有关InnoDB的增强和新特性信息,请参考:

  • 1.3节 “MySQL 8.0的新特性” 中的InnoDB增强列表。
  • 《版本说明》。

更多InnoDB信息和资源

  • 有关InnoDB相关术语和定义,请参阅《MySQL术语表》。
  • 有关InnoDB存储引擎的专门论坛,请访问MySQL Forums::InnoDB 。
  • InnoDB与MySQL一样,遵循1991年6月发布的GNU通用公共许可证第二版(GNU GPL License Version 2)。有关MySQL许可的更多信息,请访问http://www.mysql.com/company/legal/licensing/
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 索引原理 索引的优缺点 优点索引大大减小了服务器需要扫描的数据量索引可以帮助服务器避免排序和临时表索引可以将随机I...
    我爱张智容阅读 3,610评论 0 0
  • InnoDB和MyISAM存储引擎的区别 InnoDB使用的是行锁,MyISAM使用的是表锁; InnoDB支持事...
    小胖学编程阅读 3,964评论 0 4
  • MySQL索引总结 索引原理 索引的优缺点 优点 索引大大减小了服务器需要扫描的数据量 索引可以帮助服务器避免排序...
    直觉00_57阅读 1,202评论 0 0
  • 1.SQL查询操作 select的“另类”用法 我们通常习惯select + from从数据表中读取数据,不过实际...
    潜龙之于渊阅读 2,865评论 0 0
  • 转 # https://www.cnblogs.com/easypass/archive/2010/12/ 08/...
    吕品㗊阅读 13,327评论 0 44

友情链接更多精彩内容