Pourquoi MySQL 5.5 plus lent que 5.1 (Linux, en utilisant mysqlslap)
Question
my.cnf (5,5 et 5,1 est le même):
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
Pourquoi MySQL 5.5 plus lent que 5.1?
BTW: Je suis essayé mysql5.5/bin/mysqlslap
et mysql5.1/bin/mysqlslap
, le résultat est le même
La solution
Vous pouvez trouver cela surprenant, mais MySQL 5.1 peut surperformer 5.5 MySQL dans certaines circonstances.
Percona a effectué une pré-cuisson entre plusieurs versions de MySQL
- MySQL 4.1
- MySQL 5.0
- MySQL 5.1 (avec InnoDB intégré)
- MySQL 5.1 avec InnoDB-plugin
- MySQL 5.5
- MySQL 5.6
Tous les tests ont été effectués avec MySQL unconfigured (En d'autres termes, aucun my.cnf a été faite). Les résultats?
- MySQL 4.1 effectue le meilleur monothread
- MySQL 5.1 avec plug-in échelles InnoDB sur plusieurs cœurs mieux que 5,1 InnoDB construit, 5.5 et 5.6
Si vous voulez les nouvelles versions de MySQL pour mieux fonctionner, vous devez régler pour cela. En fait, je l'ai décrit dans le DBA StackExchange l'idée d'effectuer une MySQL bakeoff.
Que dois-je régler moyenne pour cela?
En MySQL 5.5, il existe de nouvelles options de InnoDB pour utiliser des fils de lecture plus dédiés, fils d'écriture et la capacité globale d'E / S. Cela peut engager plus de processeurs multi-cœurs dans les serveurs. Gauche déconfigurée, MySQL 5.5 fonctionnerait sur le même terrain de jeu de niveau, dans la plupart des cas, comme les anciennes versions de MySQL. Parfois, il pourrait faire pire.