Bonjour,
Je reviens vers vous.
Je souhaite connaitre le nombre de table SQL ayant une taille supérieur à 4000 (MB).
Sur la totalité de ces table, je souhaite ignorer celle nommé "event_data" sachant que les autres se nomme "event_dataXXXX"
J'utilise le "script" ci-dessous pour compter le nombre de table ayant une taille superieur à 4000 :
Mes deux problèmes sont :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 cmd=$(mysql -uuser -ppwd BDD -e ' select table_name AS "Tables", round(((data_length + index_length) / 1024 / 1024), 2) "Taille en MB" from information_schema.TABLES where table_schema = "BDD" AND table_name like "%event_data%" ' | cut -f2 -d"|" | cut -f2 | awk 'BEGIN {n=0 } { if ($1 >= 4000) n++ } END { print n }') echo $cmd
1) Le nombre de table ayant une taille > à 4000 est 1 seule, alors que la commande me retourne 2 ??
2) Je souhaite ignorer la table (ligne) "event_data" mais je ne sais pas du tout comment faire malgré mes recherches.
Si vous auriez une idée.
Merci,
Malik.
Voici la commande permettant de voir les tailles des bases qui m'interresse :
Ici, le résultat de cette commande :
Code : Sélectionner tout - Visualiser dans une fenêtre à part mysql -uuser -ppwd BDD -e ' select table_name AS "Tables", round(((data_length + index_length) / 1024 / 1024), 2) "Taille en MB" from information_schema.TABLES where table_schema = "BDD" AND table_name like "%event_data%" ' | less
Je souhaite donc ignorer la première ligne "event_data 663766.15"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Tables Taille en MB event_data 663766.15 event_data10000 727.45 event_data10001 681.22 event_data10002 688.73 event_data10003 628.62 event_data10004 705.44 event_data10005 747.45 event_data10006 717.04 event_data10007 681.40 event_data10008 750.94 event_data10009 735.66
Partager