Чому mysql 5.5 повільніше, ніж 5.1 (Linux, використовуючи mysqlslap)


10

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результат той самий


5
Тест, який працює протягом 1 секунди? Це якийсь жарт?

@pfo, я переходжу на:--concurrency=10 --number-of-queries 5000

1
Ваш my.cnf налаштовує MyISAM, але орієнтири використовують InnoDB. Вибачте, це все-таки жарт (так само і за замовчуванням InnoDB, якщо ви їх не змінюєте)
Laurynas Biveinis

3
Я не бачу жодної настройки InnoDB у вашому my.cnf. Орієнтовний показник проти конфігурації за замовчуванням марний, а також еталон цієї короткої тривалості також марний.
Аарон Браун

Відповіді:


9

Це може здатися вам дивним, але MySQL 5.1 за певних обставин може перевершити MySQL 5.5.

Percona здійснив обмеження серед кількох релізів MySQL

  • MySQL 4.1
  • MySQL 5.0
  • MySQL 5.1 (із вбудованим InnoDB)
  • MySQL 5.1 з плагіном InnoDB
  • 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. Іноді це може бути гіршим.


1
Ваша відповідь правильна, але я думаю, що це не стосується ОП. Коли він налаштує InnoDB, тоді ми побачимо.
Laurynas Biveinis
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.