listé les Indexs non utilisé, avec la base information_schema
This commit is contained in:
parent
af0462ded4
commit
1077d08820
|
@ -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/>
|
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
|
||||||
|
;
|
||||||
|
~~~
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue