InnoDB简介之使用InnoDB表的好处

使用InnoDB表的好处

你可能会因为以下原因而发现InnoDB表的好处:

  • 如果服务器由于硬件或软件问题而瘫痪,无论当时数据库中发生了什么,你无需执行任何特殊操作,只要重新启动数据库即可。InnoDB故障恢复会自动完成故障之前已提交的所有更改,并撤消正在处理但尚未提交的所有更改。只需重新启动并从上次中断的地方继续即可。
  • InnoDB存储引擎维护自己的缓冲池,该缓冲池在访问数据时将表和索引数据缓存在主内存中。经常使用的数据直接从内存中处理。此缓存适用于多种类型的数据,并且可以加快处理速度。在专用数据库服务器上,通常将高达80%的物理内存分配给缓冲池。
  • 如果将相关数据拆分到不同的表中,则可以设置外键保证表的完整性。更新或删除数据时,会自动更新或删除其他表中的相关数据。尝试将数据插入到副表中,如果在主表中没有相应的数据,那么这些脏数据将自动被踢出。
  • 如果数据在磁盘或内存中被损坏,则校验机制会在使用前提醒您注意脏数据。
  • 当数据库中的每个表都具有合理主键列时,涉及这些列的操作会自动进行优化。在WHERE子句,ORDER BY子句,GROUP BY子句和联接操作中引用主键列时,数据处理会非常快速。
  • 插入,更新和删除通过一种被称为“更改缓冲”的自动机制进行了优化。InnoDB不仅允许对同一表进行并发读写访问,而且还缓存更改后的数据以简化磁盘I / O。
  • 性能好处不仅限于具有长时间运行的查询的大表。当从表中重复访问相同的行时,称为“自适应哈希索引”的功能将使这些查找变得更快,就像它们是从哈希表中出来一样。
  • 你可以压缩表和关联索引。
  • 你可以创建和删除索引,来提高性能和可用性。
  • 能快速截断每个表的文件表空间,并且释放磁盘空间供操作系统重用,而不仅仅是释放system表空间中只有InnoDB可以重用的空间。
  • 使用DYNAMIC行格式,表数据的存储布局对于BLOB和长文本字段更有效。
  • 你可以通过查询INFORMATION_SCHEMA表来监视存储引擎的内部工作情况。
  • 你可以通过查询性能架构表来监视存储引擎的性能详细信息。
  • 你可以自由地将InnoDB表与来自其他MySQL存储引擎的表混合使用,即使是在同一语句中。例如,可以使用join操作在一个查询中组合来自InnoDB和内存表的数据。
  • InnoDB的设计初衷是在处理大量数据时提高CPU效率和最大性能。
  • InnoDB表可以处理大量数据,即使在文件大小限制为2GB的操作系统上也是如此。

有关InnoDB特有的调优技术,可以在应用程序代码中应用,请参阅8.5节“优化InnoDB表”。

发布了86 篇原创文章 · 获赞 14 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43365369/article/details/102624925