online instalar full español descargar mysql mysql-management database-administration

instalar - mysql workbench online



¿Cómo monitorear el espacio de MySQL? (6)

Descargué una imagen de VM de una aplicación web que usa MySQL.

¿Cómo puedo controlar su consumo de espacio y saber cuándo se debe agregar espacio adicional?


Para las tablas MyISAM, suelo verificar el tamaño del directorio / var / lib / mysql / mydatabasename /. Las tablas InnoDB usan archivos monolíticos, por lo que debe usar SHOW TABLE STATUS.


Si solo está disponible MySQL, use el comando SHOW TABLE STATUS y observe la columna Data_length para cada tabla, que está en bytes.

Si tiene otros idiomas disponibles en la máquina, una secuencia de comandos en cualquiera de ellos que se ejecuta regularmente (cron), verifica el espacio libre en disco o el tamaño del directorio de la base de datos, y lo actualiza por correo electrónico o de otra manera. Hay demasiadas opciones para sugerir una solución en particular, depende de su situación.


Como tiene VM y realmente no le importa cómo se usa el espacio, creo que la forma más simple es verificar el tamaño del directorio de datos de MySQL. Por defecto es /var/lib/mysql . También sería bueno limpiar los registros binarios de mysql (si es posible) antes de verificar el tamaño del directorio de datos.


Tengo algunas grandes consultas para compartir:

Ejecute esto para obtener los datos totales de MySQL y el uso del índice por el motor de almacenamiento

SELECT IFNULL(B.engine,''Total'') "Storage Engine", CONCAT(LPAD(REPLACE(FORMAT(B.DSize/POWER(1024,pw),3),'','',''''),17,'' ''),'' '', SUBSTR('' KMGTP'',pw+1,1),''B'') "Data Size", CONCAT(LPAD(REPLACE( FORMAT(B.ISize/POWER(1024,pw),3),'','',''''),17,'' ''),'' '', SUBSTR('' KMGTP'',pw+1,1),''B'') "Index Size", CONCAT(LPAD(REPLACE( FORMAT(B.TSize/POWER(1024,pw),3),'','',''''),17,'' ''),'' '', SUBSTR('' KMGTP'',pw+1,1),''B'') "Table Size" FROM (SELECT engine,SUM(data_length) DSize,SUM(index_length) ISize, SUM(data_length+index_length) TSize FROM information_schema.tables WHERE table_schema NOT IN (''mysql'',''information_schema'',''performance_schema'') AND engine IS NOT NULL GROUP BY engine WITH ROLLUP) B, (SELECT 3 pw) A ORDER BY TSize;

Ejecute esto para obtener el uso total de datos e índices de MySQL por base de datos

SELECT DBName,CONCAT(LPAD(FORMAT(SDSize/POWER(1024,pw),3),17,'' ''),'' '', SUBSTR('' KMGTP'',pw+1,1),''B'') "Data Size",CONCAT(LPAD( FORMAT(SXSize/POWER(1024,pw),3),17,'' ''),'' '',SUBSTR('' KMGTP'',pw+1,1),''B'') "Index Size", CONCAT(LPAD(FORMAT(STSize/POWER(1024,pw),3),17,'' ''),'' '', SUBSTR('' KMGTP'',pw+1,1),''B'') "Total Size" FROM (SELECT IFNULL(DB,''All Databases'') DBName,SUM(DSize) SDSize,SUM(XSize) SXSize, SUM(TSize) STSize FROM (SELECT table_schema DB,data_length DSize, index_length XSize,data_length+index_length TSize FROM information_schema.tables WHERE table_schema NOT IN (''mysql'',''information_schema'',''performance_schema'')) AAA GROUP BY DB WITH ROLLUP) AA,(SELECT 3 pw) BB ORDER BY (SDSize+SXSize);

Ejecute esto para obtener los datos totales MySQL y uso de índice por base de datos y motor de almacenamiento

SELECT Statistic,DataSize "Data Size",IndexSize "Index Size",TableSize "Table Size" FROM (SELECT IF(ISNULL(table_schema)=1,10,0) schema_score, IF(ISNULL(engine)=1,10,0) engine_score, IF(ISNULL(table_schema)=1,''ZZZZZZZZZZZZZZZZ'',table_schema) schemaname, IF(ISNULL(B.table_schema)+ISNULL(B.engine)=2,"Storage for All Databases", IF(ISNULL(B.table_schema)+ISNULL(B.engine)=1, CONCAT("Storage for ",B.table_schema), CONCAT(B.engine," Tables for ",B.table_schema))) Statistic, CONCAT(LPAD(REPLACE(FORMAT(B.DSize/POWER(1024,pw),3),'','',''''),17,'' ''),'' '', SUBSTR('' KMGTP'',pw+1,1),''B'') DataSize,CONCAT(LPAD(REPLACE( FORMAT(B.ISize/POWER(1024,pw),3),'','',''''),17,'' ''),'' '', SUBSTR('' KMGTP'',pw+1,1),''B'') IndexSize, CONCAT(LPAD(REPLACE(FORMAT(B.TSize/POWER(1024,pw),3),'','',''''),17,'' ''),'' '', SUBSTR('' KMGTP'',pw+1,1),''B'') TableSize FROM (SELECT table_schema,engine, SUM(data_length) DSize,SUM(index_length) ISize, SUM(data_length+index_length) TSize FROM information_schema.tables WHERE table_schema NOT IN (''mysql'',''information_schema'',''performance_schema'') AND engine IS NOT NULL GROUP BY table_schema,engine WITH ROLLUP) B, (SELECT 3 pw) A) AA ORDER BY schemaname,schema_score,engine_score;

ADVERTENCIA

En cada consulta, verá (SELECT 3 pw) . El pw significa Power Of 1024 para mostrar los resultados.

  • (SELECT 0 pw) mostrará el informe en Bytes
  • (SELECT 1 pw) mostrará el informe en KiloBytes
  • (SELECT 2 pw) mostrará el informe en MegaBytes
  • (SELECT 3 pw) mostrará el informe en GigaBytes
  • (SELECT 4 pw) mostrará el informe en TeraBytes
  • (SELECT 5 pw) mostrará el informe en PetaBytes (contácteme si ejecuta este)

Aquí hay una consulta de informe con un poco menos de formato:

SELECT IFNULL(db,''Total'') "Database", datsum / power(1024,pw) "Data Size", ndxsum / power(1024,pw) "Index Size", totsum / power(1024,pw) "Total" FROM (SELECT db,SUM(dat) datsum,SUM(ndx) ndxsum,SUM(dat+ndx) totsum FROM (SELECT table_schema db,data_length dat,index_length ndx FROM information_schema.tables WHERE engine IS NOT NULL AND table_schema NOT IN (''information_schema'',''mysql'')) AA GROUP BY db WITH ROLLUP) A,(SELECT 1 pw) B;

Créanme, hice estas consultas hace más de 4 años y todavía las uso hoy.

ACTUALIZACIÓN 2013-06-24 15:53 ​​EDT

Tengo algo nuevo. He cambiado las consultas para que no tenga que establecer el parámetro pw para diferentes pantallas de unidades. La pantalla de cada unidad se calcula para usted.

Informe por motor de almacenamiento

SELECT IFNULL(ENGINE,''Total'') "Storage Engine", LPAD(CONCAT(FORMAT(DAT/POWER(1024,pw1),2),'' '', SUBSTR(units,pw1*2+1,2)),17,'' '') "Data Size", LPAD(CONCAT(FORMAT(NDX/POWER(1024,pw2),2),'' '', SUBSTR(units,pw2*2+1,2)),17,'' '') "Index Size", LPAD(CONCAT(FORMAT(TBL/POWER(1024,pw3),2),'' '', SUBSTR(units,pw3*2+1,2)),17,'' '') "Total Size" FROM ( SELECT ENGINE,DAT,NDX,TBL, IF(px>4,4,px) pw1,IF(py>4,4,py) pw2,IF(pz>4,4,pz) pw3 FROM (SELECT *, FLOOR(LOG(IF(DAT=0,1,DAT))/LOG(1024)) px, FLOOR(LOG(IF(NDX=0,1,NDX))/LOG(1024)) py, FLOOR(LOG(IF(TBL=0,1,TBL))/LOG(1024)) pz FROM (SELECT ENGINE, SUM(data_length) DAT, SUM(index_length) NDX, SUM(data_length+index_length) TBL FROM ( SELECT engine,data_length,index_length FROM information_schema.tables WHERE table_schema NOT IN (''information_schema'',''performance_schema'',''mysql'') AND ENGINE IS NOT NULL ) AAA GROUP BY ENGINE WITH ROLLUP ) AAA ) AA) A,(SELECT '' BKBMBGBTB'' units) B;

Informe por base de datos

SELECT IFNULL(DB,''Total'') "Database", LPAD(CONCAT(FORMAT(DAT/POWER(1024,pw1),2),'' '', SUBSTR(units,pw1*2+1,2)),17,'' '') "Data Size", LPAD(CONCAT(FORMAT(NDX/POWER(1024,pw2),2),'' '', SUBSTR(units,pw2*2+1,2)),17,'' '') "Index Size", LPAD(CONCAT(FORMAT(TBL/POWER(1024,pw3),2),'' '', SUBSTR(units,pw3*2+1,2)),17,'' '') "Total Size" FROM ( SELECT DB,DAT,NDX,TBL, IF(px>4,4,px) pw1,IF(py>4,4,py) pw2,IF(pz>4,4,pz) pw3 FROM (SELECT *, FLOOR(LOG(IF(DAT=0,1,DAT))/LOG(1024)) px, FLOOR(LOG(IF(NDX=0,1,NDX))/LOG(1024)) py, FLOOR(LOG(IF(TBL=0,1,TBL))/LOG(1024)) pz FROM (SELECT DB, SUM(data_length) DAT, SUM(index_length) NDX, SUM(data_length+index_length) TBL FROM ( SELECT table_schema DB,data_length,index_length FROM information_schema.tables WHERE table_schema NOT IN (''information_schema'',''performance_schema'',''mysql'') AND ENGINE IS NOT NULL ) AAA GROUP BY DB WITH ROLLUP ) AAA) AA) A,(SELECT '' BKBMBGBTB'' units) B;

Informe por base de datos / motor de almacenamiento

SELECT IF(ISNULL(DB)+ISNULL(ENGINE)=2,''Database Total'', CONCAT(DB,'' '',IFNULL(ENGINE,''Total''))) "Reported Statistic", LPAD(CONCAT(FORMAT(DAT/POWER(1024,pw1),2),'' '', SUBSTR(units,pw1*2+1,2)),17,'' '') "Data Size", LPAD(CONCAT(FORMAT(NDX/POWER(1024,pw2),2),'' '', SUBSTR(units,pw2*2+1,2)),17,'' '') "Index Size", LPAD(CONCAT(FORMAT(TBL/POWER(1024,pw3),2),'' '', SUBSTR(units,pw3*2+1,2)),17,'' '') "Total Size" FROM ( SELECT DB,ENGINE,DAT,NDX,TBL, IF(px>4,4,px) pw1,IF(py>4,4,py) pw2,IF(pz>4,4,pz) pw3 FROM (SELECT *, FLOOR(LOG(IF(DAT=0,1,DAT))/LOG(1024)) px, FLOOR(LOG(IF(NDX=0,1,NDX))/LOG(1024)) py, FLOOR(LOG(IF(TBL=0,1,TBL))/LOG(1024)) pz FROM (SELECT DB,ENGINE, SUM(data_length) DAT, SUM(index_length) NDX, SUM(data_length+index_length) TBL FROM ( SELECT table_schema DB,ENGINE,data_length,index_length FROM information_schema.tables WHERE table_schema NOT IN (''information_schema'',''performance_schema'',''mysql'') AND ENGINE IS NOT NULL ) AAA GROUP BY DB,ENGINE WITH ROLLUP ) AAA) AA) A,(SELECT '' BKBMBGBTB'' units) B;


Puede referirse a MONyog, que tiene la función de Información de disco, que le permite descubrir el análisis de espacio en disco a nivel de servidor, nivel de base de datos y a nivel de tabla.


du -s /var/lib/mysql/* | sort -nr

Resultado

34128 /var/lib/mysql/db_name1 33720 /var/lib/mysql/db_name2 29744 /var/lib/mysql/db_name3 26624 /var/lib/mysql/db_name4 16516 /var/lib/mysql/db_name5

Esto se mostrará como orden descendente en kb