MySQL 为什么 InnoDB 是默认引擎?

80 阅读2分钟

InnoDB 的主要优势概述

InnoDB 的主要优势如下:

  1. InnoDB 支持事务以保护数据一致性,遵循 ACID 模型。
  2. InnoDB 支持行级锁。
  3. InnoDB 支持聚簇索引以加速查询。

InnoDB 的性能优势

  1. InnoDB 引擎维护自己的缓冲池,在访问数据时将表和索引数据缓存在主内存中。经常使用的数据直接从内存中处理。此缓存适用于多种类型的信息并加快处理速度。在专用数据库服务器上,高达 80% 的物理内存通常分配给缓冲池。
  2. InnoDB 使用聚簇索引以及二级索引,不仅 WHERE 语句的性能非常高,在应对 GROUP BY、ORDER BY、JOIN 语句时也有不错的性能表现。
  3. InnoDB 优化了插入、更新、删除等重型操作,缓存更改的数据以节省磁盘 I/O。
  4. InnoDB 支持自适应哈希索引,当从表中反复访问相同的行时,自适应哈希索引将接管以使这些查找更快,就像它们来自哈希表一样。
  5. InnoDB 支持压缩表和关联的索引。

InnoDB 的可靠性优势

  1. 如果服务器由于硬件或软件问题而意外退出,无论当时数据库发生什么情况,重新启动数据库后都不需要执行任何特殊操作。InnoDB崩溃恢复会自动完成崩溃之前提交的更改,并撤消正在进行中但未提交的更改。
  2. 如果将相关数据拆分到不同的表中,则可以设置外键来强制引用完整性。
  3. 如果磁盘或内存中的数据损坏,校验和机制会在您使用数据之前提醒您注意这些数据。

InnoDB 支持项

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