sql >> Base de Datos >  >> RDS >> Mysql

Cómo averiguar si el índice mysql cabe completamente en la memoria

Depende del motor de almacenamiento

MyISAM (Páginas de índice de cachés de 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');

Resta eso 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';

Resta eso de innodb_buffer_pool_size . Si la respuesta> 0, entonces Sí

Escribí sobre esto en DBA StackExchange

En un servidor de base de datos dedicado, asegúrese de que InnoDBSizeMB+IndexSizesMB no supera el 75 % de la memoria RAM.