sql >> Databasteknik >  >> RDS >> Mysql

Hur man tar reda på om mysql-index passar helt och hållet i minnet

Beror på Storage Engine

MyISAM (cacherar indexsidor från .MYI-filer)

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

Subtrahera det från key_buffer_size . Om svaret> 0, då Ja

InnoDB (cachar data och indexsidor)

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

Subtrahera det från innodb_buffer_pool_size . Om svaret> 0, då Ja

Jag skrev om detta i DBA StackExchange

På en dedikerad DB-server, se till att InnoDBSizeMB+IndexSizesMB inte överstiger 75 % av RAM-minnet.



  1. Kan inte lägga till mysql-drivrutin till jboss

  2. Optimera en SELECT-fråga som körs långsamt på Oracle som körs snabbt på SQL Server

  3. Hur man returnerar frågeresultat som en kommaseparerad lista i SQL Server – STRING_AGG()

  4. Arbeta med datum i PostgreSQL