Perché mysql 5.5 è più lento di 5.1 (linux, usando mysqlslap)


10

my.cnf (5.5 e 5.1 è lo stesso):

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

Perché mysql 5.5 è più lento di 5.1?

A proposito: ci ho provato mysql5.5/bin/mysqlslape il mysql5.1/bin/mysqlslaprisultato è lo stesso


5
Un benchmark che funziona per 1 secondo? E 'una sorta di scherzo?

@pfo, cambio a:--concurrency=10 --number-of-queries 5000

1
My.cnf configura MyISAM ma i benchmark utilizzano InnoDB. Mi dispiace, questo è ancora uno scherzo (e così sono le impostazioni predefinite di InnoDB se non le cambi)
Laurynas Biveinis,

3
Non vedo alcun tuning per InnoDB nel tuo my.cnf. Un benchmark contro la configurazione di default è inutile e un benchmark di questa breve durata è anche inutile.
Aaron Brown,

Risposte:


9

Potresti trovare questo sorprendente, ma MySQL 5.1 potrebbe superare le prestazioni di MySQL 5.5 in determinate circostanze.

Percona ha eseguito un bake-off tra più versioni di MySQL

  • MySQL 4.1
  • MySQL 5.0
  • MySQL 5.1 (con InnoDB integrato)
  • MySQL 5.1 con plug-in InnoDB
  • MySQL 5.5
  • MySQL 5.6

Tutti i test sono stati eseguiti con MySQL non configurato (in altre parole, non è stato creato my.cnf). I risultati?

  • MySQL 4.1 offre il miglior single threading
  • MySQL 5.1 con plug-in InnoDB scala su più core meglio di 5.1 InnoDB integrato, 5.5 e 5.6

Se vuoi che le versioni più recenti di MySQL funzionino meglio, devi sintonizzarti. In effetti, ho descritto nel DBA StackExchange l'idea di eseguire un MySQL Bakeoff .

Che cosa intendo sintonizzare per questo?

In MySQL 5.5 sono disponibili nuove opzioni InnoDB per l'utilizzo di thread di lettura, thread di scrittura e capacità di I / O più dedicati. Ciò può coinvolgere più CPU nei server multicore. Se non configurato, MySQL 5.5 funzionerebbe allo stesso livello, nella maggior parte dei casi, delle versioni precedenti di MySQL. A volte, potrebbe andare peggio.


1
La tua risposta è corretta ma penso che non si applichi all'OP. Quando configura InnoDB, allora vedremo.
Laurynas Biveinis,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.