Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment savoir si l'index mysql tient entièrement en mémoire

Dépend du moteur de stockage

MyISAM (cache les pages d'index des fichiers .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');

Soustrayez cela de key_buffer_size . Si la réponse> 0, alors Oui

InnoDB (cache les données et les pages d'index)

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

Soustrayez cela de innodb_buffer_pool_size . Si la réponse> 0, alors Oui

J'ai écrit à ce sujet dans le DBA StackExchange

Sur un serveur de base de données dédié, assurez-vous que InnoDBSizeMB+IndexSizesMB ne dépasse pas 75 % de la RAM.