sql >> Database >  >> RDS >> Mysql

Gegevens plus indexgegevens in het geheugen bewaren - InnoDB vs. MyISAM

  • Nee MyISAM heeft geen gegevenscache voor algemene doeleinden. Dit is gedocumenteerd in de "key_buffer_size"-beschrijving van de officiële documentatie :This is because MySQL relies on the operating system to perform file system caching for data reads, so you must leave some room for the file system cache.

Moderne besturingssystemen, met name Linux, hebben over het algemeen zeer slimme subsystemen met virtueel geheugen die veelgebruikte bestanden in de paginacache houden, zodat schijf-I/O tot een absoluut minimum wordt beperkt wanneer de werkset in het beschikbare geheugen past.

  • Dus om je tweede vraag te beantwoorden:nooit.

Het is belangrijk om niet te vervallen in "bufferoverdimensionering" voor de verschillende myisam-variabelen zoals read_buffer_size, read_rnd_buffer_size, sort_buffer_size, join_buffer_size, enz. Sommige worden dynamisch toegewezen, dus groter betekent niet altijd sneller - en soms kan het zelfs langzamer zijn - zie deze post op mysqlperformanceblog voor een zeer interessante zaak.

Als je 5.1 op een posix-platform gebruikt, wil je misschien myisam_use_mmap op uw werklast, wordt verondersteld dat het helpt bij gevallen met een hoog geschil door het aantal malloc()-aanroepen te verminderen.




  1. Hoe u uw SQL Server-versie kunt controleren

  2. Hoe MySQL-processen te tonen

  3. Is COUNT(rowid) sneller dan COUNT(*)?

  4. SQLite Unie