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

Bevaring af data plus indeksdata i hukommelsen - InnoDB vs. MyISAM

  • Ingen MyISAM har ingen datacache til generelle formål. Dette er dokumenteret i "key_buffer_size" beskrivelsen fra den officielle dokumentation :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 OS'er, især Linux, har en tendens til at have meget smarte virtuelle hukommelsesundersystemer, der vil opbevare hyppigt tilgåede filer i sidecachen, så disk I/O holdes på et minimum, når arbejdssættet passer i tilgængelig hukommelse.

  • Så for at besvare dit andet spørgsmål:aldrig.

Det er vigtigt ikke også at falde i "bufferoverstørrelse" for de forskellige myisam-variabler såsom read_buffer_size, read_rnd_buffer_size, sort_buffer_size, join_buffer_size osv., da nogle er dynamisk allokeret, så større betyder ikke altid hurtigere - og nogle gange kan det endda være langsommere - se dette indlæg på mysqlperformanceblog for en meget interessant sag.

Hvis du er på 5.1 på en posix-platform, vil du måske benchmarke myisam_use_mmap på din arbejdsbyrde, er det meningen, at det skal hjælpe højstridige sager ved at reducere mængden af ​​malloc()-kald.




  1. Brug af data beskyttet med en Azure Key Vault fra Linux

  2. EF4 - Den valgte lagrede procedure returnerer ingen kolonner

  3. bestemme tegnsættet for en tabel/database?

  4. MySQL vælg rækker fra præcis 7 dage siden