mysql: 登録されているインデクスを確認する方法
mysql でテーブルの索引がどう設定されているのか知りたいときがあると思うのですが。その場合って [SQL] mysql > show index from TABLE_NAME; [/SQL] で確認できるのはご存知かと思います。
じゃあ、索引が設定されているかいないかわからないテーブルの索引のみを探したすのはどうするのかなあ。。と思ったらよくわからない。。。というわけでinformation_schemaでデータベースに登録する索引を一発で抽出するSQLを考えてみました。
索引の情報は、information_schema.STATISTICS に格納されているらしく、以下のSQLでなんとなく表示できることが確認できました。
[SQL] select
TABLE_SCHEMA,TABLE_NAME,INDEX_NAME,COLUMN_NAME,SEQ_IN_INDEX
from
information_schema.STATISTICS
where
TABLE_SCHEMA <> 'mysql'
order by TABLE_SCHEMA,TABLE_NAME,INDEX_NAME,SEQ_IN_INDEX
INTO OUTFILE "/tmp/index_list.csv"
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'; [/SQL]
いがかでしょうか?