Neden mysql 5.5 5.1'den daha yavaş (linux, mysqlslap kullanarak)


10

my.cnf (5.5 ve 5.1 aynıdır):

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 neden 5.1'den daha yavaş?

BTW: Denedim mysql5.5/bin/mysqlslapve mysql5.1/bin/mysqlslapsonuç aynı


5
1 saniye süren bir ölçüt mü? Bu bir tür şaka mı?

@pfo, Şununla değiştiririm:--concurrency=10 --number-of-queries 5000

1
My.cnf dosyanız MyISAM'i yapılandırır, ancak karşılaştırmalar InnoDB kullanır. Üzgünüm, bu hala bir şaka (ve onları değiştirmezseniz InnoDB varsayılanları da öyle)
Laurynas Biveinis

3
My.cnf dosyasında InnoDB için herhangi bir ayar görmüyorum. Varsayılan yapılandırmaya karşı bir ölçüt işe yaramaz ve bu kısa sürenin bir ölçütü de işe yaramaz.
Aaron Brown

Yanıtlar:


9

Bu şaşırtıcı olabilir, ancak MySQL 5.1, belirli koşullar altında MySQL 5.5'ten daha iyi performans gösterebilir.

Percona, MySQL'in çoklu sürümleri arasında bir fırlama gerçekleştirdi

  • MySQL 4.1
  • MySQL 5.0
  • MySQL 5.1 (yerleşik InnoDB ile)
  • InnoDB eklentisine sahip MySQL 5.1
  • MySQL 5.5
  • MySQL 5.6

Tüm testler yapılandırılmamış MySQL ile yapılmıştır (Diğer bir deyişle, my.cnf yapılmamıştır). Sonuçlar?

  • MySQL 4.1 en iyi tek iş parçacıklı
  • InnoDB eklentili MySQL 5.1, dahili 5.1 InnoDB, 5.5 ve 5.6'dan daha iyi çekirdeklerde ölçeklendirilir

Daha yeni MySQL sürümlerinin daha iyi performans göstermesini istiyorsanız, bunu ayarlamanız gerekir. Aslında, DBA StackExchange'te MySQL Bakeoff gerçekleştirme fikrini tanımladım .

Bunun için ne demek istiyorum?

MySQL 5.5'te, daha özel okuma iş parçacığı, yazma iş parçacığı ve genel G / Ç kapasitesini kullanmak için yeni InnoDB seçenekleri vardır. Bu, çok çekirdekli sunucularda daha fazla CPU kullanabilir. Yapılandırılmadan bırakıldığında, MySQL 5.5 çoğu durumda MySQL'in eski sürümleriyle aynı seviyede oyun alanında çalışır. Bazen daha kötü performans gösterebilir.


1
Cevabınız doğru ama bence OP için geçerli değil. InnoDB'yi yapılandırdığında, göreceğiz.
Laurynas Biveinis
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.