Suchvorgänge auf der Festplatte stellen einen für die Leistung beträchtlichen Engpass dar. Dieses Problem wird in dem Moment umso offensichtlicher, wenn die Datenmengen so groß werden, dass ein effizientes Caching unmöglich wird. Bei großen Datenbanken, bei denen der Datenzugriff mehr oder weniger zufällig erfolgt, können Sie sich darauf verlassen, dass Sie mindestens einen Lese- und mehrere Suchvorgänge benötigen, um Daten zu schreiben. Um dieses Problem zu verringern, sollten Sie Festplatten mit schnellen Zugriffszeiten verwenden.
Erhöhen Sie die Anzahl der verfügbaren Festplattenspindeln (und verringern Sie dadurch die Suchbelastung), indem Sie entweder Dateien auf anderen Festplatten symbolisch verknüpfen oder das Striping verwenden:
Symbolische Verknüpfungen
              Sie verknüpfen die Index- und Datendateien von
              MyISAM-Tabellen von ihren normalen
              Positionen im Datenverzeichnis aus auf eine andere
              Festplatte (für die zudem das Striping angewendet werden
              kann). Hierdurch werden Such- und Lesezeiten verkürzt
              (vorausgesetzt, die Festplatte wird nicht noch für andere
              Zwecke verwendet). Siehe auch
              Abschnitt 7.6.1, „Symbolische Verknüpfungen“.
            
              Striping bedeutet, dass Sie viele Festplatten haben und
              den ersten Block auf der ersten Festplatte, den zweiten
              Block auf der zweiten und den
              N-ten Block auf der Festplatte
              mit der Nummer 
              ablegen. Wenn Ihre normale Datengröße also geringer ist
              als die Stripe-Größe (oder perfekt angepasst ist), dann
              erhalten Sie eine wesentlich bessere Performance. Das
              Striping hängt sehr stark vom Betriebssystem und der
              Stripe-Größe ab. Insofern sollten Sie Benchmark-Tests
              Ihrer Anwendung mit verschiedenen Stripe-Größen
              durchführen. Siehe auch
              Abschnitt 7.1.5, „Wie Sie Ihre eigenen Benchmarks benutzen“.
            N MOD
              number_of_disks
Der Geschwindigkeitsunterschied für das Striping hängt in erheblichem Maße von den Parametern ab. Je nachdem, wie Sie Ihre Striping-Parameter einstellen und über wie viel Festplatten Sie verfügen, können die Unterschiede mehrere Größenordnungen betragen. Sie müssen sich entscheiden, ob Sie die Optimierung für den wahlfreien oder den sequenziellen Zugriff durchführen wollen.
          Aus Gründen der Zuverlässigkeit sollten Sie RAID 0+1
          (Striping plus Spiegelung) verwenden, allerdings benötigen
          Sie in diesem Fall 2 × N
          Laufwerke, um N Laufwerke mit Daten
          aufzunehmen. Dies ist die wahrscheinlich beste Option, sofern
          Sie über das nötige Kleingeld verfügen. Allerdings müssen
          Sie unter Umständen in eine Volumeverwaltungssoftware
          investieren, um ein solches Setup effizient steuern zu
          können.
        
          Empfehlenswert ist auch der Ansatz, den RAID-Level
          entsprechend der Wichtigkeit der Daten zu variieren. So
          können Sie etwa Daten moderater Wichtigkeit, die sich
          wiederherstellen lassen, auf einer RAID-0-Festplatte
          speichern, wirklich wichtige Daten (z. B. Hostinformationen
          und Logdateien) hingegen auf einer RAID 0+1- oder einer
          RAID-N-Festplatte ablegen. RAID
          N kann problematisch werden, wenn
          Sie viele Schreibvorgänge haben, da die Aktualisierung der
          Paritätsbits zeitaufwändig werden kann.
        
          Unter Linux können Sie deutlich mehr Leistung erzielen, indem
          Sie die Schnittstelle Ihrer Festplatte mit
          hdparm konfigurieren. (Bis zu 100 Prozent
          unter Last sind nicht ungewöhnlich.) Die folgenden
          hdparm-Optionen sollten für MySQL – und
          auch für viele andere Anwendungen – recht gut geeignet
          sein:
        
hdparm -m 16 -d 1
          Beachten Sie, dass, wenn Sie diesen Befehl verwenden, Leistung
          und Zuverlässigkeit von Ihrer Hardware abhängen; aus diesem
          Grund empfehlen wir Ihnen dringend, Ihr System nach der
          Verwendung von hdparm umfassend zu testen.
          Weitere Informationen entnehmen Sie der
          hdparm-Manpage. Die unvorsichtige
          Verwendung von hdparm kann zu Schäden am
          Dateisystem führen! Erstellen Sie deswegen immer ein Backup,
          bevor Sie zu experimentieren beginnen.
        
Ferner können Sie die Parameter für das von der Datenbank verwendete Dateisystem einstellen:
          Wenn Sie nicht wissen müssen, wann zuletzt auf die Dateien
          zugegriffen wurde (was bei einem Datenbankserver eigentlich
          auch nicht wichtig ist), dann können Sie Ihre Dateisysteme
          mit der Option -o noatime einbinden.
          Hierdurch werden Updates bis zum letzten Zugriffszeitpunkt in
          Inoden auf dem Dateisystem übersprungen, wodurch einige
          Suchvorgänge auf der Festplatte unnötig werden.
        
          Bei vielen Betriebssystemen können Sie für ein Dateisystem
          eine asynchrone Aktualisierung konfigurieren; hierzu binden
          Sie es mit der Option -o async ein. Wenn Ihr
          Computer ausreichend stabil ist, sollten Sie auf diese Weise
          mehr Performance erhalten, ohne zu viel Zuverlässigkeit zu
          opfern. (Unter Linux ist dieses Flag standardmäßig aktiv.)
        
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.
