MySQL 为什么选择 InnoDB 作为默认存储引擎
目录
因为 InnoDB 是一种兼顾高可靠性和高性能的通用存储引擎。
InnoDB 的主要优势概述
InnoDB 的主要优势如下:
- InnoDB 支持事务以保护数据一致性,遵循 ACID 模型。
- InnoDB 支持行级锁。
- InnoDB 支持聚簇索引以加速查询。
InnoDB 的性能优势
- InnoDB 引擎维护自己的缓冲池,在访问数据时将表和索引数据缓存在主内存中。经常使用的数据直接从内存中处理。此缓存适用于多种类型的信息并加快处理速度。在专用数据库服务器上,高达 80% 的物理内存通常分配给缓冲池。
- InnoDB 使用聚簇索引以及二级索引,不仅 WHERE 语句的性能非常高,在应对 GROUP BY、ORDER BY、JOIN 语句时也有不错的性能表现。
- InnoDB 优化了插入、更新、删除等重型操作,缓存更改的数据以节省磁盘 I/O。
- InnoDB 支持自适应哈希索引,当从表中反复访问相同的行时,自适应哈希索引将接管以使这些查找更快,就像它们来自哈希表一样。
- InnoDB 支持压缩表和关联的索引。
InnoDB 的可靠性优势
- 如果服务器由于硬件或软件问题而意外退出,无论当时数据库发生什么情况,重新启动数据库后都不需要执行任何特殊操作。InnoDB崩溃恢复会自动完成崩溃之前提交的更改,并撤消正在进行中但未提交的更改。
- 如果将相关数据拆分到不同的表中,则可以设置外键来强制引用完整性。
- 如果磁盘或内存中的数据损坏,校验和机制会在您使用数据之前提醒您注意这些数据。
InnoDB 支持项
特征 | 支持 |
---|---|
B 树索引 | 是的 |
备份/时间点恢复(在服务器中实现,而不是在存储引擎中实现。) | 是的 |
集群数据库支持 | 不 |
聚集索引 | 是的 |
压缩数据 | 是的 |
数据缓存 | 是的 |
加密数据 | 是(通过加密功能在服务器中实现;在 MySQL 5.7 及更高版本中,支持静态数据加密。) |
外键支持 | 是的 |
全文搜索索引 | 是(MySQL 5.6 及更高版本中提供对 FULLTEXT 索引的支持。) |
地理空间数据类型支持 | 是的 |
地理空间索引支持 | 是(MySQL 5.7 及更高版本中提供对地理空间索引的支持。) |
哈希索引 | 否(InnoDB 在内部利用哈希索引来实现其自适应哈希索引功能。) |
索引缓存 | 是的 |
锁定粒度 | 排 |
MVCC | 是的 |
复制支持(在服务器中实现,而不是在存储引擎中实现。) | 是的 |
存储限制 | 64TB |
T树索引 | 不 |
交易 | 是的 |
更新数据字典的统计信息 | 是的 |
原文链接:MySQL 为什么选择 InnoDB 作为默认存储引擎
参考:
Buy me a coffee~

