MYSQL5.5和MYSQL5.1性能对比
2012-04-10 19:50
295 查看
MYSQL5.5和MYSQL5.1性能对比
简介:
看了MYSQL5.5的一些新特性不免有些心动,最近刚好有时间还有空闲的服务器来做一下性能测试,下面就分别将mysql-5.1.50、mysql-5.5.15、Percona-Server-5.5.15三个版本做了一个性能测试,性能测试工具为sysbench、mysqlslap两个工具。
环境:
CPU: Xeon
W5647 2.93GHzX2颗
内存:2X16G
硬盘:4X600G RAID 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.
测试结果图:
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.
测试结果图:
字符类型做主键:
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
简介:
看了MYSQL5.5的一些新特性不免有些心动,最近刚好有时间还有空闲的服务器来做一下性能测试,下面就分别将mysql-5.1.50、mysql-5.5.15、Percona-Server-5.5.15三个版本做了一个性能测试,性能测试工具为sysbench、mysqlslap两个工具。
环境:
CPU: Xeon
W5647 2.93GHzX2颗
内存:2X16G
硬盘:4X600G RAID 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 |
测试结论:
从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 |
测试结论:
从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
相关文章推荐
- MYSQL5.5和MYSQL5.1性能对比
- MySQL 5.1 与 MySQL 5.5 性能测试对比
- MySQL5.5 MyISAM与InnoDB引擎读写性能对比
- MySQL5.5 MyISAM与InnoDB 引擎读写性能对比
- MySQL5.5与MySQL5.1性能对比测试
- MySQL 5.6 GA 与 MySQL 5.5 性能对比
- centos 下编译安装mysql5.1与mysql5.5
- 【MySQL运维】MySQL5.1升级到MySQ 5.5实战 推荐
- Mysql 批量插入 事务插入 性能对比
- Python的MySQL驱动pymysql与mysqlclient性能对比
- 关于MongoDB在64位服务器上依然报 mmap failed with out of memory 错误的解决方法(附Mysql性能对比测试)
- Percona Server与MySQL 5.5的性能比较
- mysql安装,及cmake错误,mysql5.5与5.6参数对比
- centos 下编译安装mysql5.1与mysql5.5
- Mysql5.5读写性能比5.1提高3倍多
- mysql与mongodb、redis的性能对比,包含源代码
- MySQL 5.5版本对普通索引增删性能的优化
- MySQL性能比较测试:MySQL5.6 GA -VS- MySQL5.5
- Solr与MySQL查询性能对比
- MySQL性能比较测试:MySQL5.6 GA -VS- MySQL5.5