如何在MySQL中查看数据库或表的索引?

如何查看个人数据库是否有任何索引? 数据库

对于特定的桌子怎么样? 性能


#1楼

我建议这个查询: 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


#2楼

您可使用此查询来获取索引的数量以及指定数据库中每一个表的索引名称。 索引

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;

#3楼

您能够在MySQL工做台中检查索引。在性能报告选项卡下,您能够看到系统上全部使用的索引和未使用的索引。 或者您能够触发查询。 io

select * from sys.schema_index_statistics;

#4楼

检查db上的全部已禁用索引 table

SELECT INDEX_SCHEMA, COLUMN_NAME, COMMENT 
FROM information_schema.statistics
WHERE table_schema = 'mydb'
AND COMMENT = 'disabled'

#5楼

这在个人状况下适用于在索引字段的相应表中获取表名和列名。 form

SELECT TABLE_NAME , COLUMN_NAME, COMMENT 
FROM information_schema.statistics
WHERE table_schema = 'database_name';
相关文章
相关标签/搜索