使用InnoDB表的好处
您可能会InnoDB
因为以下原因而发现表格有益:
- 如果您的服务器由于硬件或软件问题而意外退出,无论当时数据库中发生了什么,重新启动数据库后都无需执行任何特殊操作。
InnoDB
崩溃恢复会 自动完成崩溃之前已提交的所有更改,并撤消正在处理但尚未提交的所有更改。只需重新启动,然后从上次中断的地方继续即可。 - 该
InnoDB
存储引擎维护它自己的 缓冲池,在主内存缓存表和索引数据作为数据被访问。经常使用的数据直接从内存中处理。此缓存适用于多种类型的信息,并加快了处理速度。在专用数据库服务器上,通常将多达80%的物理内存分配给缓冲池。 - 如果将相关数据拆分到不同的表中,则可以设置 强制 引用完整性的外键。更新或删除数据,并自动更新或删除其他表中的相关数据。尝试将数据插入到辅助表中,而在主表中没有相应的数据,那么不良数据将自动被踢出。
- 如果数据在磁盘或内存中损坏,则 校验和机制会在使用前提醒您注意虚假数据。
- 当为每个表设计具有适当主键列的数据库时 ,涉及这些列的操作会自动进行优化。在
WHERE
子句,ORDER BY
子句,GROUP BY
子句和联接操作中引用主键列非常快速 。 - 插入,更新和删除通过称为更改缓冲的自动机制进行了优化。
InnoDB
不仅允许对同一表的并发读写访问,而且还缓存更改的数据以简化磁盘I / O。 - 性能收益不仅限于具有长时间运行的查询的巨型表。当从表中一遍又一遍地访问相同的行时,称为“ 自适应哈希索引”的功能 将使这些查找变得更快,就像它们从哈希表中出来一样。
- 您可以压缩表和关联的索引。
- 您可以创建和删除索引,而对性能和可用性的影响要小得多。
- 截断 每表文件表 空间非常快,并且可以释放磁盘空间供操作系统重用,而不是释放只能重用的系统表空间中的空间
InnoDB
。 BLOB
使用DYNAMIC行格式, 对于长文本字段,表数据的存储布局更为有效 。- 您可以通过查询INFORMATION_SCHEMA 表来监视存储引擎的内部工作情况 。
- 您可以通过查询性能架构表来监视存储引擎的性能详细信息 。
- 您可以自由地将
InnoDB
表与其他MySQL存储引擎的表混合使用,即使在同一条语句中也是如此。例如,您可以使用 联接操作在单个查询中合并来自InnoDB
和MEMORY
表的数据。 InnoDB
设计用于处理大数据量时的CPU效率和最佳性能。InnoDB
表可以处理大量数据,即使在文件大小限制为2GB的操作系统上也是如此。
有关InnoDB
可以在应用程序代码中应用的特定调整技术,请参见 “针对InnoDB表进行优化”。
更多内容欢迎关注我的个人公众号“韩哥有话说”,100G人工智能学习资料,大量后端学习资料等你来拿。