Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So finden Sie heraus, ob der MySQL-Index vollständig in den Speicher passt

Hängt von der Speicher-Engine ab

MyISAM (Cachet Indexseiten aus .MYI-Dateien)

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');

Subtrahieren Sie das von key_buffer_size . Wenn die Antwort> 0 ist, dann Ja

InnoDB (caches Daten und Indexseiten)

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

Subtrahieren Sie das von innodb_buffer_pool_size . Wenn die Antwort> 0 ist, dann Ja

Ich habe darüber im DBA StackExchange geschrieben

Stellen Sie auf einem dedizierten DB-Server sicher, dass InnoDBSizeMB+IndexSizesMB überschreitet nicht 75 % des RAM.