Warum MySQL 5.5 langsamer als 5.1 (Linux, mit Mysqlslap)


10

my.cnf (5.5 und 5.1 sind gleich):

back_log=200
max_connections=512
max_connect_errors=999999
key_buffer=512M
max_allowed_packet=8M
table_cache=512
sort_buffer=8M
read_buffer_size=8M
thread_cache=8
thread_concurrency=4
myisam_sort_buffer_size=128M
interactive_timeout=28800
wait_timeout=7200

MySQL 5.5:

..mysql5.5/bin/mysqlslap -a --concurrency=10 --number-of-queries 5000 
      --iterations=5 -S /tmp/mysql_5.5.sock --engine=innodb
Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 15.156 seconds
        Minimum number of seconds to run all queries: 15.031 seconds
        Maximum number of seconds to run all queries: 15.296 seconds
        Number of clients running queries: 10
        Average number of queries per client: 500

mysql5.1:

..mysql5.5/bin/mysqlslap -a --concurrency=10 --number-of-queries 5000 
      --iterations=5 -S /tmp/mysql_5.1.sock --engine=innodb
Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 13.252 seconds
        Minimum number of seconds to run all queries: 13.019 seconds
        Maximum number of seconds to run all queries: 13.480 seconds
        Number of clients running queries: 10
        Average number of queries per client: 500

Warum MySQL 5.5 langsamer als 5.1?

Übrigens: Ich habe es versucht mysql5.5/bin/mysqlslapund das mysql5.1/bin/mysqlslapErgebnis ist das gleiche


5
Ein Benchmark, der 1 Sekunde lang läuft? Ist das eine Art Witz?

@pfo, ich wechsle zu:--concurrency=10 --number-of-queries 5000

1
Ihre my.cnf konfiguriert MyISAM, aber Benchmarks verwenden InnoDB. Es tut mir leid, das ist immer noch ein Witz (und InnoDB-Standardeinstellungen auch, wenn Sie sie nicht ändern)
Laurynas Biveinis

3
Ich sehe keine Abstimmung für InnoDB in Ihrer my.cnf. Ein Benchmark gegen Standard Die Konfiguration ist nutzlos und ein Benchmark dieser kurzen Dauer ist ebenfalls nutzlos.
Aaron Brown

Antworten:


9

Sie werden dies vielleicht überraschen, aber MySQL 5.1 kann MySQL 5.5 unter bestimmten Umständen übertreffen.

Percona führte ein Bake-Off zwischen mehreren Versionen von MySQL durch

  • MySQL 4.1
  • MySQL 5.0
  • MySQL 5.1 (mit integrierter InnoDB)
  • MySQL 5.1 mit InnoDB-Plugin
  • MySQL 5.5
  • MySQL 5.6

Alle Tests wurden mit nicht konfiguriertem MySQL durchgeführt (mit anderen Worten, es wurde keine my.cnf erstellt). Die Ergebnisse?

  • MySQL 4.1 bietet die beste Single-Threaded-Leistung
  • MySQL 5.1 mit InnoDB-Plug-In skaliert auf mehreren Kernen besser als 5.1 InnoDB, 5.5 und 5.6

Wenn Sie möchten, dass neuere Versionen von MySQL eine bessere Leistung erzielen, müssen Sie sich darauf einstellen. Tatsächlich habe ich im DBA StackExchange die Idee beschrieben, ein MySQL-Bakeoff durchzuführen .

Was meine ich damit?

In MySQL 5.5 gibt es neue InnoDB-Optionen für die Verwendung dedizierterer Lesethreads, Schreibthreads und der gesamten E / A-Kapazität. Dies kann mehr CPUs in Multicore-Servern beanspruchen. Wenn MySQL 5.5 nicht konfiguriert ist, funktioniert es in den meisten Fällen unter denselben Wettbewerbsbedingungen wie ältere Versionen von MySQL. Manchmal könnte es schlechter abschneiden.


1
Ihre Antwort ist richtig, aber ich denke, sie gilt nicht für OP. Wenn er InnoDB konfiguriert, werden wir sehen.
Laurynas Biveinis
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.