mysql5_MYSQL5.5和MYSQL5.1性能对比

MYSQL5.5和MYSQL5.1性能对比

简介:

看了MYSQL5.5的一些新特性不免有些心动,最近刚好有时间还有空闲的服务器来做一下性能测试,下面就分别将mysql-5.1.50、mysql-5.5.15、Percona-Server-5.5.15三个版本做了一个性能测试,性能测试工具为sysbench、mysqlslap两个工具。

环境:

CPU:Xeon

W56472.93GHzX2颗

内存:2X16G

硬盘:4X600GRAID 10

MYSQL版本:mysql-5.1.50.tar.gz/mysql-5.5.15.tar.gz/

Percona-Server-5.5.15-rel21.0.tar.gz

Sysbench版本:sysbench-0.4.12

性能测试结果:

一、Sysbench性能测试

1.Sysbench测试说明

测试数据为1000万,采用sysbench自动生成的表结构,采用混合sql测试方法,测试的语句数量为50万,分别对50、100、200的并发做了测试

2.生成数据的语句:

sysbench --mysql-user=root

--mysql-password=zhang@123 --test=oltp --mysql-host=192.168.100.61

--oltp-test-mode=complex \

--mysql-table-engine=innodb

--oltp-table-size=10000000 --mysql-db=test --oltp-table-name=test prepare

3.测试语句:

sysbench --mysql-user=root

--mysql-password=zhang@123 --test=oltp --mysql-host=192.168.100.61

--oltp-test-mode=complex \

--mysql-table-engine=innodb--oltp-table-size=10000000

--mysql-db=test--oltp-table-name=test \

--num-threads=50 --max-requests=500000 run

三个性能测试语句除了--num-threads数量不一样,其他都是一样的,这里就不贴出来了。

4.测试结果图:

Mysql版本

并发数

消耗时间

每秒事务数

每秒读取和写入数

mysql-5.1.50

50

173.8682s

2046.28/s

38879.23/s

100

252.4939s

1960.91/s

37257.28/s

200

291.2413s

1814.27/s

34471.22/s

mysql-5.5.15

50

244.3542s

2876.10/s

54645.85/s

100

254.9980s

1980.42/s

37628.05/s

200

275.6170s

1716.90/s

32621.09/s

Percona-5.5.15

50

157.2437s

3180.29/s

60425.58/s

100

248.1540s

2015.04/s

38285.74/s

200

267.8760s

1866.75/s

35468.29/s

5.测试结论:

从sysbench的性能测试结果看,Percona-5.5.15性能最好,但是Percona-5.5.15随着并发数的增大性能下降得也比较厉害。mysql-5.5随着并发数的增大性能下滑也比较厉害。而mysql-5.1.50性能随着并发数的增大,性能比较稳定。

二、Mysqlslap性能测试

1.Mysqlslap测试简介:

采用mysqlslap自动生成表结构的方式,表结构为10列字符列,10列数字列,总语句书为50万,其中10万为写入操作,并发分别为50、100、2000,测试分两种方式,一个是采用字符类型做主键,一个是采用数字类型+auto_increment做主键

2.测试语句:

mysqlslap --no-defaults -h192.168.100.61 -uroot -pzhang@123

--engine=innodb --auto-generate-sql-write-number=100000

--auto-generate-sql-guid-primary --concurrency=50,100,200

--number-of-queries=500000 --iterations=2 --number-char-cols=10 --number-int-cols=10

--auto-generate-sql --create-schema=test --auto-generate-sql-load-type=mixed

mysqlslap --no-defaults -h192.168.100.61

-uroot -pzhang@123 --engine=innodb --auto-generate-sql-write-number=100000

--auto-generate-sql-add-autoincrement --concurrency=50,100,200

--number-of-queries=500000 --iterations=2 --number-char-cols=10

--number-int-cols=10 --auto-generate-sql --create-schema=test

--auto-generate-sql-load-type=mixed

3.测试结果图:

字符类型做主键:

Mysql版本

并发数

每个客户端运行的queries数

每个客户端执行所有queries消耗时间(字符主键)

每个客户端执行所有queries消耗时间(数字主键)

mysql-5.1.50

50

10000

24.795s

21.680s

100

5000

25.094s

23.548s

200

2500

27.208s

25.350s

mysql-5.5.15

50

10000

22.818s

21.502s

100

5000

23.633s

22.088s

200

2500

23.862s

22.891s

Percona-5.5.15

50

10000

22.285s

22.104s

100

5000

24.279s

22.800s

200

2500

25.187s

21.677s

4.测试结论:

从mysqlslap的测试结果来看,大体和前面结果一致。只是才用数字类型做主键的时候性能改善比较大,尤其是在高并发的场景,采用int的话性能提升更明显

附:mysql的性能参数如下:

点击(此处)折叠或打开

[client]

port = 3306

default-character-set=utf8

socket = /usr/local/mysql/tmp/mysql.sock

[mysqld]

log_bin_trust_function_creators = 1

character-set-server = utf8

port = 3306

socket = /usr/local/mysql/tmp/mysql.sock

basedir = /usr/local/mysql

datadir = /data/dbdata

back_log = 100

max_connections = 500

max_connect_errors = 100000

table_cache = 624

external-locking = FALSE

max_allowed_packet = 16M

sort_buffer_size = 8M

join_buffer_size = 4M

thread_cache_size = 128

query_cache_size = 128M

query_cache_limit = 2M

query_cache_min_res_unit = 2k

default-storage-engine = INNODB

thread_stack = 192K

transaction_isolation = REPEATABLE-READ

tmp_table_size = 128M

max_heap_table_size = 128M

slow_query_log

long_query_time = 0.5

log-bin

binlog_format = MIXED

binlog_cache_size = 4M

max_binlog_cache_size = 8M

max_binlog_size = 512M

key_buffer_size = 256M

read_buffer_size = 8M

read_rnd_buffer_size = 8M

bulk_insert_buffer_size = 64M

myisam_sort_buffer_size = 128M

myisam_max_sort_file_size = 10G

myisam_repair_threads = 1

myisam_recover

interactive_timeout = 28800

wait_timeout = 28800

skip-name-resolve

server-id = 1

innodb_buffer_pool_size = 20G

innodb_additional_mem_pool_size = 20M

innodb_data_file_path = ibdata1:256M:autoextend

innodb_file_io_threads = 8

innodb_thread_concurrency = 16

innodb_flush_log_at_trx_commit = 2

innodb_log_buffer_size = 16M

innodb_log_file_size = 512M

innodb_log_files_in_group = 3

innodb_flush_method=O_DIRECT

#5.5的添加了innodb_io_capacity参数

#innodb_io_capacity=500

innodb_support_xa=0

innodb_max_dirty_pages_pct = 75

innodb_lock_wait_timeout = 120

innodb_file_per_table = 1

[myisamchk]

key_buffer_size = 512M

sort_buffer_size = 512M

read_buffer = 8M

write_buffer = 8M

[mysqldump]

quick

max_allowed_packet = 32M

[mysqld_safe]

open-files-limit = 10240

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值