2012-07-31 7 views

Respuesta

16

Depende del motor de almacenamiento

MyISAM (cachés páginas de índice de los archivos .MYI)

SELECT FLOOR(SUM(index_length)/POWER(1024,2)) IndexSizesMB 
FROM information_schema.tables WHERE engine='MyISAM' AND 
table_schema NOT IN ('information_schema','performance_schema','mysql'); 

Reste que a partir de key_buffer_size. Si la respuesta> 0, entonces sí

InnoDB (cachés de datos y páginas de índice)

SELECT FLOOR(SUM(data_length+index_length)/POWER(1024,2)) InnoDBSizeMB 
FROM information_schema.tables WHERE engine='InnoDB'; 

Reste que desde innodb_buffer_pool_size. Si la respuesta> 0, entonces sí

que escribió sobre esto en el DBA StackExchange

En un dedicado DB Server, asegúrese de InnoDBSizeMB+IndexSizesMB no supere el 75% de la RAM.

+0

Gracias, ¿los siguientes parecen realistas? 'innodb_buffer_pool_size = 134217728' -' sobre-consulta = 283164672' = '-148946944'. Si este es el caso, ¿debo aumentar mi 'innodb_buffer_pool_size', o cuál sería el próximo paso aquí? – David542

+1

Su grupo de búferes es 128M. Su InnoDBSize es 270M. Por lo tanto, sube 'innodb_buffer_pool_size' a 300M. – RolandoMySQLDBA

+0

Rehice la consulta para hacer MB en lugar de Bytes. – RolandoMySQLDBA

2

encontrar memoria disponible para MySQL , busque en my.cnf, probablemente se encuentra en: /etc/mysql/my.cnf

key_buffer_size = 264M 

Para encontrar el tamaño de los índices de una tabla: SHOW TABLE status FROM [DBNAME]

+0

En mi archivo my.cnf no tengo ninguna opción relacionada con la memoria definida. ¿Cuál es la opción específica aquí que debería definirse? – David542

Cuestiones relacionadas