MariaDB 10.1.1: performance_schema 表不再使用 .frm 文件
是的!在 MariaDB 10.1.1 中,`PERFORMANCE_SCHEMA` 中的表不再使用 `.frm` 文件。这些文件不会被创建,也不会被读取——实际上,`PERFORMANCE_SCHEMA` 表根本不触碰磁盘。
这得益于 MariaDB 的一个不太知名的特性——新的**表发现**(“旧表发现”于2004年在 MySQL 中为 NDB Cluster 实现),该特性在 MariaDB 10.0.2 中实现。MariaDB 不再读取和解析 `.frm` 文件,而是直接询问 `PERFORMANCE_SCHEMA` 表它具有什么结构,由于这些表始终具有固定结构,该表直接将其返回给 MariaDB,无需任何外部数据字典。
这也意味着,您永远不需要升级 `PERFORMANCE_SCHEMA` 表,它们始终具有与您正在运行的 MariaDB 版本相对应的正确结构。并且 `PERFORMANCE_SCHEMA` 永远不需要处理过时的 `.frm` 文件或旧的表结构。仅此一项,我们就得以删除了约 5500 行(五千五百行!) `PERFORMANCE_SCHEMA` 代码。
目前,`PERFORMANCE_SCHEMA` 表、`INFORMATION_SCHEMA` 表、Sequence 和 Archive 表都可以不使用 `.frm` 文件工作。Connect 和 FederatedX 表也支持发现(其变体,称为 *辅助发现*)。
未来我们计划将发现功能扩展到其他引擎。
`PERFORMANCE_SCHEMA` 表的表发现功能由 Sergey Vojtovich 实现。