Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Daten plus Indexdaten im Speicher halten - InnoDB vs. MyISAM

  • Nein MyISAM hat keinen allgemeinen Datencache. Dies ist in der Beschreibung "key_buffer_size" von die offizielle 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 Betriebssysteme, insbesondere Linux, verfügen in der Regel über sehr intelligente virtuelle Speichersubsysteme, die häufig aufgerufene Dateien im Seitencache aufbewahren, sodass die Festplatten-E/A auf ein absolutes Minimum reduziert wird, wenn der Arbeitssatz in den verfügbaren Speicher passt.

  • Um Ihre zweite Frage zu beantworten:niemals.

Es ist wichtig, auch bei den verschiedenen myisam-Variablen wie read_buffer_size, read_rnd_buffer_size, sort_buffer_size, join_buffer_size usw. nicht in "Pufferüberdimensionierung" zu geraten, da einige dynamisch zugewiesen werden, also bedeutet größer nicht immer schneller - und manchmal kann es sogar langsamer sein - siehe diesen Beitrag auf mysqlperformanceblog für einen sehr interessanten Fall.

Wenn Sie 5.1 auf einer Posix-Plattform verwenden, möchten Sie vielleicht myisam_use_mmap Bei Ihrer Arbeitsbelastung soll es Fällen mit hoher Konkurrenzsituation helfen, indem es die Anzahl der malloc()-Aufrufe reduziert.