如何查看个人数据库是否有任何索引? 数据库
对于特定的桌子怎么样? 性能
我建议这个查询: spa
SELECT DISTINCT s.* FROM INFORMATION_SCHEMA.STATISTICS s LEFT OUTER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS t ON t.TABLE_SCHEMA = s.TABLE_SCHEMA AND t.TABLE_NAME = s.TABLE_NAME AND s.INDEX_NAME = t.CONSTRAINT_NAME WHERE 0 = 0 AND t.CONSTRAINT_NAME IS NULL AND s.TABLE_SCHEMA = 'YOUR_SCHEMA_SAMPLE';
您找到了全部仅索引索引。 code
看待。 orm
您可使用此查询来获取索引的数量以及指定数据库中每一个表的索引名称。 索引
SELECT TABLE_NAME, COUNT(1) index_count, GROUP_CONCAT(DISTINCT(index_name) SEPARATOR ',\n ') indexes FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = 'mydb' AND INDEX_NAME != 'primary' GROUP BY TABLE_NAME ORDER BY COUNT(1) DESC;
您能够在MySQL工做台中检查索引。在性能报告选项卡下,您能够看到系统上全部使用的索引和未使用的索引。 或者您能够触发查询。 io
select * from sys.schema_index_statistics;
检查db上的全部已禁用索引 table
SELECT INDEX_SCHEMA, COLUMN_NAME, COMMENT FROM information_schema.statistics WHERE table_schema = 'mydb' AND COMMENT = 'disabled'
这在个人状况下适用于在索引字段的相应表中获取表名和列名。 form
SELECT TABLE_NAME , COLUMN_NAME, COMMENT FROM information_schema.statistics WHERE table_schema = 'database_name';