Tại sao mysql 5.5 chậm hơn 5.1 (linux, sử dụng mysqlslap)


10

my.cnf (5.5 và 5.1 là như nhau):

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

Tại sao mysql 5.5 chậm hơn 5.1?

BTW: Tôi đã thử mysql5.5/bin/mysqlslapmysql5.1/bin/mysqlslapkết quả là như nhau


5
Một điểm chuẩn chạy trong 1 giây? Đây có phải là một số loại trò đùa?

@pfo, tôi đổi thành:--concurrency=10 --number-of-queries 5000

1
My.cnf của bạn định cấu hình MyISAM nhưng điểm chuẩn sử dụng InnoDB. Tôi xin lỗi, đây vẫn chỉ là một trò đùa (và InnoDB cũng mặc định nếu bạn không thay đổi chúng)
Laurynas Biveinis

3
Tôi không thấy bất kỳ điều chỉnh nào cho InnoDB trong my.cnf của bạn. Một điểm chuẩn so với mặc định cấu hình là vô dụng và điểm chuẩn của thời lượng ngắn này cũng vô dụng.
Aaron Brown

Câu trả lời:


9

Bạn có thể thấy điều này đáng ngạc nhiên, nhưng MySQL 5.1 có thể vượt trội hơn MySQL 5.5 trong một số trường hợp nhất định.

Percona đã thực hiện một loạt các phiên bản MySQL

  • MySQL 4.1
  • MySQL 5.0
  • MySQL 5.1 (có InnoDB tích hợp)
  • MySQL 5.1 với plugin InnoDB
  • MySQL 5.5
  • MySQL 5.6

Tất cả các thử nghiệm đã được thực hiện với MySQL chưa được định cấu hình (Nói cách khác, không có my.cnf nào được thực hiện). Kết quả?

  • MySQL 4.1 thực hiện đơn luồng tốt nhất
  • MySQL 5.1 với thang đo bổ trợ InnoDB trên nhiều lõi tốt hơn so với 5.1 InnoDB được xây dựng, 5.5 và 5.6

Nếu bạn muốn các phiên bản mới hơn của MySQL hoạt động tốt hơn, bạn phải điều chỉnh cho nó. Trong thực tế, tôi đã mô tả trong DBA StackExchange ý tưởng thực hiện MySQL Bakeoff .

Tôi có ý nghĩa gì cho giai điệu cho nó?

Trong MySQL 5.5, có các tùy chọn InnoDB mới để sử dụng các luồng đọc chuyên dụng hơn, viết các luồng và dung lượng I / O tổng thể. Điều này có thể tham gia nhiều CPU hơn trong các máy chủ đa lõi. Không được cấu hình, MySQL 5.5 sẽ hoạt động trên cùng một sân chơi, trong hầu hết các trường hợp, như các phiên bản cũ hơn của MySQL. Đôi khi, nó có thể thực hiện tồi tệ hơn.


1
Câu trả lời của bạn là đúng nhưng tôi nghĩ nó không áp dụng cho OP. Khi anh ta cấu hình InnoDB, sau đó chúng ta sẽ thấy.
Laurynas Biveinis
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.