MySQL 为什么选择 InnoDB 作为默认存储引擎

因为 InnoDB 是一种兼顾高可靠性和高性能的通用存储引擎。

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树索引
交易 是的
更新数据字典的统计信息 是的

原文链接:MySQL 为什么选择 InnoDB 作为默认存储引擎

参考:

  1. https://dev.mysql.com/doc/refman/8.0/en/innodb-benefits.html
Buy me a coffee~
支付宝
微信
0%