¿Por qué mysql 5.5 es más lento que 5.1 (linux, usando mysqlslap)

10

my.cnf (5.5 y 5.1 es lo mismo):

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

¿Por qué mysql 5.5 es más lento que 5.1?

Por cierto: estoy probado mysql5.5/bin/mysqlslapy el mysql5.1/bin/mysqlslapresultado es el mismo

Koerr
fuente
55
¿Un punto de referencia que dura 1 segundo? ¿Es algún tipo de broma?
@pfo, cambio a:--concurrency=10 --number-of-queries 5000
1
Su my.cnf configura MyISAM pero los puntos de referencia usan InnoDB. Lo siento, esto sigue siendo una broma (y también lo son los valores predeterminados de InnoDB si no los cambias)
Laurynas Biveinis
3
No veo ningún ajuste para InnoDB en tu my.cnf. Un punto de referencia contra la configuración predeterminada es inútil y un punto de referencia de tan corta duración también es inútil.
Aaron Brown el

Respuestas:

9

Puede encontrar esto sorprendente, pero MySQL 5.1 puede superar a MySQL 5.5 bajo ciertas circunstancias.

Percona realizó un horneado entre múltiples lanzamientos de MySQL

  • MySQL 4.1
  • MySQL 5.0
  • MySQL 5.1 (con InnoDB incorporado)
  • MySQL 5.1 con InnoDB-plugin
  • MySQL 5.5
  • MySQL 5.6

Todas las pruebas se realizaron con MySQL sin configurar (en otras palabras, no se realizó my.cnf). ¿Los resultados?

  • MySQL 4.1 realiza el mejor subproceso único
  • MySQL 5.1 con plug-in InnoDB escala en múltiples núcleos mejor que 5.1 InnoDB incorporado, 5.5 y 5.6

Si desea que las versiones más recientes de MySQL funcionen mejor, debe ajustarlo. De hecho, describí en el DBA StackExchange la idea de realizar un Bakeoff de MySQL .

¿A qué me refiero sintonizarlo?

En MySQL 5.5, hay nuevas opciones de InnoDB para utilizar hilos de lectura más dedicados, hilos de escritura y capacidad de E / S general. Esto puede involucrar más CPU en servidores multinúcleo. Si no se configura, MySQL 5.5 funcionaría en el mismo campo de juego, en la mayoría de los casos, que las versiones anteriores de MySQL. A veces, podría funcionar peor.

RolandoMySQLDBA
fuente
1
Su respuesta es correcta, pero creo que no se aplica a OP. Cuando configure InnoDB, ya veremos.
Laurynas Biveinis