Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como descobrir se o índice mysql cabe inteiramente na memória


Depende do mecanismo de armazenamento

MyISAM (páginas de índice de cache de arquivos .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');

Subtraia isso de key_buffer_size . Se a resposta> 0, então sim

InnoDB (Caches de dados e páginas de índice)

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

Subtraia isso de innodb_buffer_pool_size . Se a resposta> 0, então sim

Escrevi sobre isso no DBA StackExchange

Em um servidor de banco de dados dedicado, certifique-se de que InnoDBSizeMB+IndexSizesMB não excede 75% da RAM.