sql >> Database >  >> RDS >> Mysql

Hoe erachter te komen of de mysql-index volledig in het geheugen past?

Hangt af van Storage Engine

MijnISAM (caches indexpagina's van .MYI-bestanden)

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

Trek dat af van key_buffer_size . Als het antwoord> 0, dan Ja

InnoDB (caches van gegevens en indexpagina's)

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

Trek dat af van innodb_buffer_pool_size . Als het antwoord> 0, dan Ja

Ik schreef hierover in de DBA StackExchange

Zorg er op een speciale DB-server voor dat InnoDBSizeMB+IndexSizesMB niet groter is dan 75% van RAM.



  1. Waarom krijg ik de foutmelding Xml-gegevenstype wordt niet ondersteund in gedistribueerde query's wanneer ik een gekoppelde server vraag naar niet-xml-gegevens?

  2. Een-op-veel-relatie tussen AspNetUsers (Identity) en een aangepaste tabel

  3. Problemen met SQL Server CPU-prestaties oplossen

  4. MySQL vergelijk now() (alleen datum, geen tijd) met een datetime-veld