En rangeant mes tips.txt, je suis retombé sur un de mes vieux machin bien pratiques. Je le publie ici donc.

L'idée est d'avoir pas mal d'informations concernant les tailles de base, indexes, rows et autre joyeusetés d'un serveur mysql.

mysql -B -e  \
     "SELECT \
         concat(table_schema,'.',table_name), \
         round(table_rows/1000000,2) Rows_Million, \
         round(data_length/(1024*1024*1024),2) Data_GB, \
         round(index_length/(1024*1024*1024),2) index_GB, \
         round((data_length+index_length)/(1024*1024*1024),2) total_size_GB, \
         round(index_length/data_length,2) idxfrac \
      FROM \
          information_schema.TABLES \
      ORDER BY \
         data_length+index_length DESC;" \
 >  `date '+%Y-%m-%d_%Hh%M'`-`uname -n`-MySQL-stats.csv
 

Voilà. Après cela un joli fichier csv tout chaud tout trifouillable dans n'importe quel bon tableur est à dispo.

Si vous avez plusieurs bases et que vous souhaitez trier les tables par base et nom de table, la requête modifiée :

mysql -B -e  \
   "SELECT \
       concat(table_schema,'.',table_name), \
       round(table_rows/1000000,2) Rows_Million, \
       round(data_length/(1024*1024*1024),2) Data_GB, \
       round(index_length/(1024*1024*1024),2) index_GB, \
       round((data_length+index_length)/(1024*1024*1024),2) total_size_GB, \
       round(index_length/data_length,2) idxfrac \
    FROM \
        information_schema.TABLES \
    ORDER BY \
       concat(table_schema,'.',table_name) DESC;" \
>  `date '+%Y-%m-%d_%Hh%M'`-`uname -n`-MySQL-stats.csv
bazaar/mysql_metriques_audit.txt · Last modified: 2011/01/10 08:36 by beorn