Die meisten der folgenden Tests wurden unter Linux mit den MySQL-Benchmarks durchgeführt, sie sollten aber trotzdem ausreichend aussagekräftig auch für andere Betriebssysteme und Belastungsbereiche sein.
        Sie erhalten die schnellsten ausführbaren Dateien, indem Sie
        mit der Option -static verknüpfen.
      
        Unter Linux kompilieren Sie den Server am besten mit
        pgcc und -O3. Sie benötigen
        etwa 200 Mbyte Speicher zur Kompilierung von
        sql_yacc.cc mit diesen Optionen, weil
        gcc oder pgcc eine Menge
        Speicher benötigt, um alle Funktionen zu integrieren. Ferner
        sollten Sie bei der Konfiguration von MySQL
        CXX=gcc einstellen, um die Miteinbeziehung
        der Bibliothek libstdc++ zu vermeiden, denn
        diese wird nicht benötigt. Beachten Sie, dass bei einigen
        Versionen von pgcc die resultierende
        Binärdatei nur auf echten Pentium-Prozessoren läuft, auch wenn
        Sie eine Compileroption verwendet haben, mit der Sie angeben
        wollten, dass der Ergebniscode auf allen x586-Prozessoren
        (z. B. AMD) laufen soll.
      
Sie können eine Geschwindigkeitszunahme von 10 bis 30 Prozent erzielen, indem Sie einen besseren Compiler und geeignetere Kompilierungsoptionen verwenden. Dies ist besonders wichtig, wenn Sie den MySQL Server selbst kompilieren.
Als wir die Cygnus CodeFusion- und Fujitsu-Compiler testeten, stellte sich heraus, dass keiner von diesen ausreichend wenig Bugs aufwies, um MySQL mit aktivierten Optimierungen zu kompilieren.
        MySQL-Standarddistributionen werden mit der Unterstützung für
        alle Zeichensätze kompiliert. Wenn Sie MySQL selbst
        kompilieren, sollten Sie die Unterstützung nur für diejenigen
        Zeichensätze integrieren, die Sie tatsächlich verwenden
        werden. Dies wird mit der Option --with-charset
        für configure gesteuert.
      
Es folgt eine Liste einiger Maßnahmen, die wir vorgenommen haben:
            Wenn Sie pgcc verwenden und alles mit
            -O6 kompilieren, ist der Server
            mysqld um ein Prozent schneller als mit
            gcc 2.95.2.
          
            Wenn Sie dynamisch verknüpfen (also ohne
            -static), ist das Ergebnis unter Linux um
            13 Prozent langsamer. Beachten Sie, dass Sie eine dynamisch
            verknüpfte MySQL-Bibliothek weiterhin für Ihre
            Clientanwendungen benutzen können. Es ist der Server, der
            für die Leistungsfähigkeit die kritischste Komponente
            darstellt.
          
            Wenn Sie Ihre mysqld-Binärdatei mit
            strip mysqld bearbeiten, kann die
            resultierende Binärdatei um bis zu 4 Prozent schneller
            sein.
          
            Bei einer Verbindung von einem Client zu einem Server, der
            auf demselben Host läuft, ist die Leistung um 7,5 Prozent
            geringer, wenn Sie die Verbindung über TCP/IP statt über
            eine Unix-Socketdatei herstellen. (Unter Unix verwendet
            MySQL, wenn Sie die Verbindung zum Hostnamen
            localhost herstellen, standardmäßig
            eine Socketdatei.)
          
TCP/IP-Verbindungen von einem Client mit einem Server sind um 8 bis 11 Prozent langsamer, wenn der Server auf einem entfernten System liegt, als bei Verbindung mit einem Server auf demselben Host (und zwar auch bei Verbindungen über 100-Mbit/s-Ethernet).
Bei Ausführung unserer Benchmark-Tests über sichere Verbindungen (d. h., alle Daten wurden durch die interne SSL-Unterstützung verschlüsselt) war die Leistung um 55 Prozent geringer als bei unverschlüsselten Verbindungen.
            Wenn Sie mit --with-debug=full kompilieren,
            sind die meisten Abfragen 20 Prozent langsamer. Einige
            Abfragen können deutlich länger benötigen; so laufen die
            MySQL-Benchmarks um 35 Prozent langsamer. Wenn Sie
            --with-debug (ohne
            =full) angeben, liegt der
            Geschwindigkeitsverlust lediglich bei 15 Prozent. Bei einer
            Version von mysqld, die mit
            --with-debug=full kompiliert wurde, können
            Sie die Speicherüberprüfung zur Laufzeit abschalten, indem
            Sie sie mit der Option --skip-safemalloc
            starten. Die Ausführungsgeschwindigkeit sollte in diesem
            Fall nicht allzu weit unter derjenigen liegen, die sich bei
            einer Konfiguration mit --with-debug
            erzielen lässt.
          
Auf einem Sun UltraSPARC-IIe ist ein mit Forte 5.0 kompilierter Server 4 Prozent schneller als ein mit gcc 3.2 kompilierter Server.
Auf einem Sun UltraSPARC-IIe ist ein mit Forte 5.0 kompilierter Server im 32-Bit-Modus 4 Prozent schneller als im 64-Bit-Modus.
            Die Kompilierung mit gcc 2.95.2 für
            UltraSPARC mit den Optionen -mcpu=v8 -Wa
            und -xarch=v8plusa bietet einen
            Leistungszuwachs von 4 Prozent.
          
Auf Solaris 2.5.1 ist MIT-pthreads 8 bis 12 Prozent langsamer als native Solaris-Threads auf einem einzelnen Prozessor. Bei hoher Belastung oder mehr Prozessoren sollte der Unterschied noch größer sein.
            Die Kompilierung auf Linux-x86 mit gcc
            ohne Frame-Zeiger (-fomit-frame-pointer
            oder -fomit-frame-pointer -ffixed-ebp)
            macht mysqld 1 bis 4 Prozent schneller.
          
Von MySQL AB angebotene MySQL-Binärdistributionen für Linux wurden früher generell mit pgcc kompiliert. Aufgrund eines Bugs in pgcc, der dazu führte, dass die erzeugten Binärdateien nicht auf AMD-Prozessoren liefen, mussten wir jedoch zu gcc zurückkehren. Wir werden gcc weiterhin verwenden, bis dieser Bug behoben ist. In der Zwischenzeit können Sie, wenn Sie kein AMD-System haben, durch Kompilierung mit pgcc eine schnellere Binärdatei erstellen. Die MySQL-Standardbinärdatei für Linux ist statisch verknüpft, um Geschwindigkeit und Portabilität zu optimieren.
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.

