sql >> Databáze >  >> RDS >> Mysql

Jak zjistit, zda se index mysql zcela vejde do paměti

Závisí na Storage Engine

MyISAM (Ukládá indexové stránky ze souborů .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');

Odečtěte to od key_buffer_size . Pokud je odpověď> 0, pak Ano

InnoDB (ukládá data a stránky indexu do mezipaměti)

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

Odečtěte to od innodb_buffer_pool_size . Pokud je odpověď> 0, pak Ano

Napsal jsem o tom v DBA StackExchange

Na vyhrazeném serveru DB se ujistěte, že InnoDBSizeMB+IndexSizesMB nepřesahuje 75 % paměti RAM.



  1. Jak vrátit prvky z pole JSON v MariaDB

  2. ScaleGrid je nyní k dispozici v regionu Sydney AWS

  3. Potenciální vylepšení ASPState

  4. DATEDIFF() nebo BETWEEN pro rozsahy dat v dotazech SQL