Localizar las tablas MySQL más grandes de nuestro servidor

votar

Sólo apto para MySQL 5:

MySQL:
  1. SELECT
  2. CONCAT(table_schema,'.',table_name),
  3. CONCAT(ROUND(table_rows/1000000,2),'M') rows,
  4. CONCAT(ROUND(data_length/(1024*1024*1024),2),'G') DATA,
  5. CONCAT(ROUND(index_length/(1024*1024*1024),2),'G') idx,
  6. CONCAT(ROUND((data_length+index_length)/(1024*1024*1024),2),'G') total_size,
  7. ROUND(index_length/data_length,2) idxfrac FROM information_schema.TABLES
  8. ORDER BY data_length+index_length DESC LIMIT 10;

Lo que hace, vulgarmente, viene siendo recopilar información de la tabla TABLES de la BD INFORMATION_SCHEMA, una nueva BD por defecto en las distribuciones 5 y posteriores, que almacena información acerca de todas las tablas de todas las bds del servidor. Muy práctico para saber cual es ese cliente de nuestro servidor que se está comiendo el disco duro a golpe de almacenar basura :)

El ejemplo de resultado se explica sólo:

MySQL:
  1. +-------------------------------------+--------+--------+--------+------------+---------+
  2. | CONCAT(table_schema,'.',table_name) | rows   | DATA   | idx    | total_size | idxfrac |
  3. +-------------------------------------+--------+--------+--------+------------+---------+
  4. | art87.link_out87                    | 37.25M | 14.83G | 14.17G | 29.00G     |    0.96 |
  5. | art87.article87                     | 12.67M | 15.83G | 4.79G  | 20.62G     |    0.30 |
  6. | art116.article116                   | 10.49M | 12.52G | 3.65G  | 16.18G     |    0.29 |
  7. | art84.article84                     | 10.10M | 10.11G | 3.59G  | 13.70G     |    0.35 |
  8. | art104.link_out104                  | 23.66M | 6.63G  | 6.55G  | 13.18G     |    0.99 |
  9. | art118.article118                   | 7.06M  | 10.49G | 2.68G  | 13.17G     |    0.26 |
  10. | art106.article106                   | 9.86M  | 10.19G | 2.76G  | 12.95G     |    0.27 |
  11. | art85.article85                     | 6.20M  | 9.82G  | 2.51G  | 12.33G     |    0.26 |
  12. | art91.article91                     | 8.66M  | 9.17G  | 2.66G  | 11.83G     |    0.29 |
  13. | art94.article94                     | 5.21M  | 10.10G | 1.69G  | 11.79G     |    0.17 |
  14. +-------------------------------------+--------+--------+--------+------------+---------+
  15. 10 rows IN SET (2 min 29.19 sec)

El creador original de la función es Peter Zaitsev, de MySQL Performance Blog, antiguo Responsable de Rendimiento en MySQL Inc.

Deja tu opinión

Sólo se permiten las etiquetas XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Post anteriores/siguientes:

Post (quizás) relacionados:

  • MySQL – Generar SQL para optimizar las tablas más rellenitas

  • ¿ Generar SQL desde MySQL ? Pozi. [mysql] SELECT CONCAT('OPTIMIZE TABLE ', table_name, ';') FROM information_schema.tables WHERE table_schema = aqui_tu_base_de_datos AND table_rows >= 1000; [/mysql] Esto generará una salida de forma automática...
  • Consultas MySQL útiles

  • Las 10 bases de datos más grandes del servidor [mysql] SELECT count(*) TABLES, table_schema,concat(round(sum(table_rows)/1000000,2),'M') rows, concat(round(sum(data_length)/(1024*1024*1024),2),'G') DATA, concat(round(sum(index_length)/(1024*1024*1024),2),'G') idx, concat(round(sum(data_length+index_length)/(1024*1024*1024),2),'G') total_size, round(sum(index_length)/sum(data_length),2) idxfrac FROM information_schema.TABLES GROUP BY table_schema ORDER BY sum(data_length+index_length) DESC LIMIT 10; [/mysql] Número total de...
  • Esquema de Tablas MySQL de mediawiki

  • Me la guardo como referencia: ...
  • Comodidad para el cliente de comandos de MySQL

  • Si conectamos a menudo con nuestro servidor de MySQL utilizando la utilidad del comando "mysql", nos veremos compelidos a repetir, una y otra vez, los...
  • Miscelánea de enlaces sobre Bases de datos

  • Optimizaciones de subqueries en MySQL 6, en MySQL 6.0 Subquery optimizations are published Ojo con el tipo de índices que defines en las tablas Memory, en...