358 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
Einfach durch die Benutzung eines besseren Compilers und / oder besserer Compiler-
Optionen k¨onnen Sie eine 10-30%-ige Geschwindigkeitssteigerung in Ihrer Applikation er-
halten. Das ist besonders wichtig, wenn Sie den SQL-Server selbst kompilieren!
Wir haben sowohl Cygnus CodeFusion als auch Fujitsu-Compiler getestet, aber es stellte sich
heraus, dass keiner von beiden ausreichend Bug-frei war, damit MySQL mit angeschalteten
Optimierungen kompiliert werden konnte.
Wenn Sie MySQL kompilieren, sollten Sie nur Unterst¨utzung f¨ur die Zeichens¨atze ein-
schließen, die Sie benutzen werden (Option --with-charset=xxx). Die Standard-MySQL-
Bin¨ardistributionen werden mit Unterst¨utzung f¨ur alle Zeichens¨atze kompiliert.
Hier ist eine Auflistung einiger Messungen, die wir durchgef¨uhrt haben:
• Wenn Sie pgcc benutzen und alles mit -O6 kompilieren, ist der mysqld-Server 1%
schneller als mit gcc 2.95.2.
• Wenn Sie dynamisch linken (ohne -static), ist das Ergebnis unter Linux 13%
langsamer. Beachten Sie, dass Sie dennoch dynamisch gelinkte MySQL-Bibliotheken
benutzen k¨onnen. Nur beim Server ist das kritisch in Bezug auf Performance.
• Wenn Sie Ihre mysqld-Bin¨ardatei mit strip libexec/mysqld strippen, ist die resul-
tierende Bin¨ardatei bis zu 4% schneller.
• Wenn Sie sich ¨uber TCP/IP statt ¨uber Unix-Sockets verbinden, ist das auf demselben
Computer 7,5% langsamer. (Wenn Sie sich zu localhost verbinden, benutzt MySQL
vorgabem¨aßig Sockets.)
• Wenn Sie sich ¨uber TCP/IP von einem anderen Computer ¨uber ein 100-MBit-Ethernet
verbinden, ist das 8% bis 11% langsamer.
• Wenn Sie mit --with-debug=full kompilieren, verlangsamen sich die meisten
Anfragen um 20%, manche Anfragen jedoch werden wesentlich langsamer (der
MySQL-Benchmarks zeigte 35%). Wenn Sie --with-debug b enutzen, betr¨agt die
Verlangsamung nur 15%. Wenn Sie eine mysqld-Version, die mit --with-debug=full
kompiliert wurde, mit --skip-safemalloc starten, ist die Geschwindigkeit etwa
dasselbe, als wenn Sie mit --with-debug konfigurieren.
• Auf einer Sun SPARCstation 20 ist SunPro C++ 4.2 5% schneller als gcc 2.95.2.
• Das Kompilieren mit gcc 2.95.2 f¨ur ultrasparc mit der Option -mcpu=v8
-Wa,-xarch=v8plusa ergibt 4% mehr Performance.
• Auf Solaris 2.5.1 sind MIT-pThreads 8% bis 12% langsamer als Solaris-native Threads,
auf einem Einprozessorsystem. Bei mehr Last / Prozessoren sollte der Unterschied
gr¨oßer werden.
• Laufenlassen mit --log-bin macht MySQL 1% langsamer.
• Wenn beim Kompilieren unter Linux-x86 mit gcc keine Frame-Pointers -fomit-frame-
pointer oder -fomit-frame-pointer -ffixed-ebp verwendet werden, ist mysqld 1%
bis 4% schneller.
Die MySQL-Linux-Distribution, die von MySQL AB zur Verf¨ugung gestellt wird, wurde
fr¨uher mit pgcc kompiliert, aber wir mussten zum normalen gcc zur¨uck gehen, weil es
einen Bug in pgcc gibt, der Code erzeugt, der nicht auf AMD l¨auft. Wir werden gcc
solange benutzen, bis dieser Bug behoben ist. Bis dahin k¨onnen Sie, falls Sie keine AMD-
Maschine haben, eine schnellere Bin¨ardatei erhalten, wenn Sie mit pgcc kompilieren. Die
Comentários a estes Manuais