Почему MySQL 5,5 медленнее 5,1 (Linux, используя MySQLSLAP)
Вопрос
my.cnf (5,5 и 5.1 - это то же самое):
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
Почему MySQL 5,5 медленнее 5,1?
Кстати: я пытался mysql5.5/bin/mysqlslap
а также mysql5.1/bin/mysqlslap
, результат такой же
Решение
Вы можете найти это удивительное, но MySQL 5.1 может превзойти MySQL 5.5 при определенных обстоятельствах.
Percona выполнил выпечку среди нескольких выпусков MySQL
- MySQL 4.1
- MySQL 5.0
- MySQL 5.1 (со встроенным InnoDB)
- Mysql 5.1 с Innodb-Plugin
- MySQL 5.5
- MySQL 5.6
Все тесты были выполнены с MySQL, неконфигурированным (другими словами, нет my.cnf). Результаты, достижения?
- MySQL 4.1 выполняет лучшие однопоточные
- MySQL 5.1 с шкалами подключаемых модулей InnoDB на нескольких ядрах лучше, чем 5.1, встроенный InnoDB, 5,5 и 5,6
Если вы хотите, чтобы новые версии MySQL работали лучше, вы должны настроиться на это. Фактически, Я описал в DBA StackexChange идею выполнения MySQL Bakeoff.
Что я имею в виду для этого?
В MySQL 5.5 есть новые параметры InnoDB для использования более выделенных потоков чтения, записей и общей емкости ввода -вывода. Это может привлечь больше процессоров на многоядерных серверах. Оставаясь без соблюдения, MySQL 5.5 будет работать на том же уровне игрового поля, в большинстве случаев, как более старые версии MySQL. Иногда это могло работать хуже.