sql >> Database teknologi >  >> RDS >> Mysql

Sådan finder du ud af, om mysql-indeks passer helt i hukommelsen

Afhænger af Storage Engine

MyISAM (Caches indekssider fra .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');

Træk det fra key_buffer_size . Hvis svaret> 0, så Ja

InnoDB (Cache data og indekssider)

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

Træk det fra innodb_buffer_pool_size . Hvis svaret> 0, så Ja

Jeg skrev om dette i DBA StackExchange

På en dedikeret DB-server skal du sørge for, at InnoDBSizeMB+IndexSizesMB ikke overstiger 75 % af RAM.



  1. PRINT-sætning i T-SQL

  2. Kan ikke oprette en forekomst af OLE DB-udbyder Microsoft.Jet.OLEDB.4.0 for linket server null

  3. Hvilke tegn er faktisk i stand til at forårsage SQL-injektion i MySQL?

  4. Glidende gennemsnit baseret på tidsstempler i PostgreSQL