18
0
Fork 0

listé les Indexs non utilisé, avec la base information_schema

This commit is contained in:
emorino 2022-03-17 16:09:34 +01:00
parent af0462ded4
commit 1077d08820
1 changed files with 21 additions and 0 deletions

View File

@ -954,5 +954,26 @@ Un contournement est d'utiliser l'option `--no-tablespaces`.
D'autres solutions sur <https://anothercoffee.net/how-to-fix-the-mysqldump-access-denied-process-privilege-error/>
## Listé les Indexs non utilisé, avec la base information_schema
Voici une requêtes SQL qui se base sur la base `information_schema` et les tables `STATISTICS` et `INDEX_STATISTICS` qui liste les Indexes non utilisés.
Attention, le résultat de cette requête n'est pas fiable à 100%, car ça suppose qu'un index est inutilisé que s'il n'a jamais provoqué IO wait.
Les clés primaire et les indexs UNIQUE sont exclus :
~~~
SELECT st.TABLE_SCHEMA, st.TABLE_NAME, st.INDEX_NAME
FROM information_schema.STATISTICS st
LEFT JOIN information_schema.INDEX_STATISTICS idx
ON idx.INDEX_NAME = st.INDEX_NAME
AND idx.TABLE_NAME = st.TABLE_NAME
AND idx.TABLE_SCHEMA = st.TABLE_SCHEMA
WHERE
(idx.INDEX_NAME IS NULL OR idx.ROWS_READ = 0)
AND st.NON_UNIQUE = 1
ORDER BY 1, 2, 3
;
~~~