本页是 PmaControl 的原创文档。它保留了用于 MySQL 优化工作的实用索引结构,不复制第三方内容,也不依赖外部产品。
目标
架构检查用于发现生产中代价高的结构:缺失索引、过大的列、缺失主键、历史 MyISAM 表以及未使用的索引。
检查项
- 没有主键的 InnoDB 表。
- 重复或高度冗余的索引。
- 在过宽索引中使用的
VARCHAR或TEXT列。 - 连接列类型或排序规则不同。
- 大型表没有归档策略。
- 业务完整性需要但缺少 foreign keys。
有用查询
SELECT table_schema, table_name
FROM information_schema.tables t
WHERE engine = 'InnoDB'
AND table_schema NOT IN ('mysql', 'performance_schema', 'information_schema', 'sys')
AND NOT EXISTS (
SELECT 1
FROM information_schema.table_constraints c
WHERE c.table_schema = t.table_schema
AND c.table_name = t.table_name
AND c.constraint_type = 'PRIMARY KEY'
);
要点
有价值的架构检查会把每个异常关联到查询、执行计划或可度量的运维成本。