如何在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';
相關文章
相關標籤/搜索