mysql官方读写性能_mysql读写性能测试-阿里云开发者社区
概述和测试环境
压测的目的是为了尽量模拟真实情况。测试的表都是由10个int型字段和10个字符串型字段组成。每个测试项目都测试了myisam和innodb两个引擎。测试的方法都是用两个线程并发,一共跑10000个请求。
压测的机器用的是自己的笔记本。CPU是Intel(R) Core(TM)2 Duo CPU P8400, 4G内存, SATA硬盘。
mysql服务器端和压测的客户端跑在同一台机器上。mysql的版本是5.5.
用到的mysqlslap参数解释如下:
--concurrency=2 两个线程
--iterations=1 执行一次
--number-int-cols=10 10个int型字段
--number-char-cols=10 10个字符串字段
-a 等同于--auto-generate-sql
--auto-generate-sql-add-autoincrement 创建auto increment的主键
--auto-generate-sql-secondary-indexes=2 创建2列索引
--auto-generate-sql-guid-primary 创建guid作为主键
--number-of-queries=10000 所有并发线程的请求次数和
--auto-generate-sql-load-type=write/key/read/update/mixed 测试的query类型
--engine=myisam,innodb 存储引擎
写性能测试
写性能测试1,不开binlog, guid做主键, 无索引
测试命令:
1
mysqlslap --concurrency=2\
2
--iterations=1\
3
--number-int-cols=10\
4
--number-char-cols=10\
5
-a\
6
--auto-generate-sql-guid-primary\
7
--number-of-queries=10000\
8
--auto-generate-sql-load-type=write\
9
--engine=myisam,innodb\
结果:
01
Benchmark
02
Runningforengine myisam
03
Average number of seconds to run all queries: 6.110 seconds
04
Minimum number of seconds to run all queries: 6.110 seconds
05
Maximum number of seconds to run all queries: 6.110 seconds
06
Number of clients running queries: 2
07
Average number of queries per client: 5000
08
09
Benchmark
10
Runningforengine innodb
11
Average number of seconds to run all queries: 10.291 seconds
12
Minimum number of seconds to run all queries: 10.291 seconds
13
Maximum number of seconds to run all queries: 10.291 seconds
14
Number of clients running queries: 2
15
Average number of queries per client: 5000
用myisam每秒处理1639次。
用innodb每秒处理971次。
真实环境中一般会用binlog做数据备份与同步,所以性能会有所下降,有binlog的情况请继续看后面的实验。
写性能测试2, 开binlog, guid做主键, 无索引
测试命令与“写性能测试1”相同,
结果如下:
01
Benchmark
02
Runningforengine myisam
03
Average number of seconds to run all queries: 14.809 seconds
04
Minimum number of seconds to run all queries: 14.809 seconds
05
Maximum number of seconds to run all queries: 14.809 seconds
06
Number of clients running queries: 2
07
Average number of queries per client: 5000
08
09
Benchmark
10
Runningforengine innodb
11
Average number of seconds to run all queries: 26.721 seconds
12
Minimum number of seconds to run all queries: 26.721 seconds
13
Maximum number of seconds to run all queries: 26.721 seconds
14
Number of clients running queries: 2
15
Average number of queries per client: 5000
myisam每秒处理675次
innodb每秒处理374次
写性能测试3, 开binlog, guid做主键, 有索引
现实情况中,有索引的情况较多。采用--auto-generate-sql-secondary-indexes=2 创建两列索引。
命令如下:
01
mysqlslap --concurrency=2\
02
--iterations=1\
03
--number-int-cols=10\
04
--number-char-cols=10\
05
-a\
06
--auto-generate-sql-guid-primary\
07
--auto-generate-sql-secondary-indexes=2\
08
--number-of-queries=10000\
09
--auto-generate-sql-load-type=write\
10
--engine=myisam,innodb\
结果如下:
01
Benchmark
02
Runningforengine myisam
03
Average number of seconds to run all queries: 16.693 seconds
04
Minimum number of seconds to run all queries: 16.693 seconds
05
Maximum number of seconds to run all queries: 16.693 seconds
06
Number of clients running queries: 2
07
Average number of queries per client: 5000
08
09
Benchmark
10
Runningforengine innodb
11
Average number of seconds to run all queries: 30.418 seconds
12
Minimum number of seconds to run all queries: 30.418 seconds
13
Maximum number of seconds to run all queries: 30.418 seconds
14
Number of clients running queries: 2
15
Average number of queries per client: 5000
myisam每秒处理599次。
innodb每秒处理329次。
写性能测试4,开binglog,auto increment主键,有索引
命令如下:
01
mysqlslap --concurrency=2\
02
--iterations=1\
03
--number-int-cols=10\
04
--number-char-cols=10\
05
-a\
06
--auto-generate-sql-add-autoincrement\
07
--auto-generate-sql-secondary-indexes=2\
08
--number-of-queries=10000\
09
--auto-generate-sql-load-type=write\
10
--engine=myisam,innodb\
结果如下:
01
Benchmark
02
Runningforengine myisam
03
Average number of seconds to run all queries: 16.785 seconds
04
Minimum number of seconds to run all queries: 16.785 seconds
05
Maximum number of seconds to run all queries: 16.785 seconds
06
Number of clients running queries: 2
07
Average number of queries per client: 5000
08
09
Benchmark
10
Runningforengine innodb
11
Average number of seconds to run all queries: 28.809 seconds
12
Minimum number of seconds to run all queries: 28.809 seconds
13
Maximum number of seconds to run all queries: 28.809 seconds
14
Number of clients running queries: 2
15
Average number of queries per client: 5000
myisam每秒处理595次。
innodb每秒处理347次。
读性能测试
在真实的情况中,我们最主要的读操作其实就是用主键去查找表中的一行。 我主要是对这种行为进行测试。所以采用的load-type = key ,而不是read。 read是对全表进行读取,可是实际上这种情况很少出现。
读性能测试1,guid主键
命令如下:
01
mysqlslap --concurrency=2\
02
--iterations=1\
03
--number-int-cols=10\
04
--number-char-cols=10\
05
-a\
06
--auto-generate-sql-guid-primary\
07
--auto-generate-sql-unique-query-number=10000\
08
--auto-generate-sql-load-type=key\
09
--number-of-queries=10000\
10
--engine=myisam,innodb\
结果如下:
01
Benchmark
02
Runningforengine myisam
03
Average number of seconds to run all queries: 4.215 seconds
04
Minimum number of seconds to run all queries: 4.215 seconds
05
Maximum number of seconds to run all queries: 4.215 seconds
06
Number of clients running queries: 2
07
Average number of queries per client: 5000
08
09
Benchmark
10
Runningforengine innodb
11
Average number of seconds to run all queries: 3.917 seconds
12
Minimum number of seconds to run all queries: 3.917 seconds
13
Maximum number of seconds to run all queries: 3.917 seconds
14
Number of clients running queries: 2
15
Average number of queries per client: 5000
myisam每秒处理2372次
innodb每秒处理2553次
读性能测试2,auto increment主键
命令如下
01
mysqlslap --concurrency=1\
02
--iterations=1\
03
--number-int-cols=10\
04
--number-char-cols=10\
05
-a\
06
--auto-generate-sql-add-autoincrement\
07
--auto-generate-sql-unique-query-number=10000\
08
--auto-generate-sql-load-type=key\
09
--number-of-queries=10000\
10
--engine=myisam,innodb\
结果如下:
01
Benchmark
02
Runningforengine myisam
03
Average number of seconds to run all queries: 4.555 seconds
04
Minimum number of seconds to run all queries: 4.555 seconds
05
Maximum number of seconds to run all queries: 4.555 seconds
06
Number of clients running queries: 1
07
Average number of queries per client: 10000
08
09
Benchmark
10
Runningforengine innodb
11
Average number of seconds to run all queries: 4.402 seconds
12
Minimum number of seconds to run all queries: 4.402 seconds
13
Maximum number of seconds to run all queries: 4.402 seconds
14
Number of clients running queries: 1
15
Average number of queries per client: 10000
myisam每秒处理2195次。
innodb每秒处理2273次。
实验结果
项目
myisam每秒吞吐量
innodb每秒吞吐量
写性能测试1,不开binlog, guid主键, 无索引
1639
971
写性能测试2,开binlog,guid主键,无索引
675
374
写性能测试3, 开binlog, guid做主键, 有索引
599
329
写性能测试4,开binglog,auto increment主键,有索引
595
347
读性能测试1,guid主键
2372
2553
读性能测试2,auto increment主键
2195
2273
结论
1 在开启了binlog后, mysql写性能下降60%
2 myisam与innodb相比,写的速度更快(快40%), 读的速度差不多。
转载
mysql官方读写性能_mysql读写性能测试-阿里云开发者社区相关推荐
- MySQL 引擎 阿里_MySQL引擎讲解-阿里云开发者社区
MySQL支持三个引擎:ISAM.MyISAM和HEAP,根据需求不同来选择不同的引擎 数据库的引擎到决于 MySQL 在安装的时候是如何被编译的,要添加一个新的引擎,就必须重新编译 --with-p ...
- mysql 除号_MySql的运算符-阿里云开发者社区
数据库中的表结构确立后,表中的数据代表的意义就已经确定.而通过MySQL运算符进行运算,就可以获取到表结构以外的另一种数据.例如,学生表中存在一个birth字段,这个字段表示学生的出生年份.而运用My ...
- 阿里云 mysql 日志_MySQL日志简介-阿里云开发者社区
MySQL中的日志主要分为以下几种: 查询日志 慢查询日志 错误日志 二进制日志 中继日志 事务日志 说明: 支持本文实验使用的linux系统是CentOS7版本,使用的数据库是base源自带的Mar ...
- 阿里云mysql创建用户_mysql创建用户-阿里云开发者社区
创建用于localhost连接的用户并指定密码 mysql> create user'pcom'@'localhost'identified by'aaa7B2249'; Query OK,0r ...
- 阿里云mysql事件启动_mysql 启动事件-阿里云开发者社区
事件调度器有时也可称为临时触发器(temporal triggers),因为事件调度器是基于特定时间周期触发来执行某些任务,而触发器(Triggers)是基于某个表所产生的事件触发的,区别也就在这里. ...
- mysql子分区多少层_MySQL 子分区-阿里云开发者社区
介绍 子分区其实是对每个分区表的每个分区进行再次分隔,目前只有RANGE和LIST分区的表可以再进行子分区,子分区只能是HASH或者KEY分区.子分区可以将原本的数据进行再次的分区划分. 一.创建子分 ...
- mysql timeout的单位_mysql的timeout-阿里云开发者社区
mysql的timeout 很多时候我们连接mysql会在timeout这里跌倒,这里明确下mysql的timeout: 下面是获取timeout的变量: mysql> show global ...
- coba mysql_在Android Studio中将数据从MySQL数据库显示到TextView中-问答-阿里云开发者社区-阿里云...
我是新手,Android Studio我想将数据库(我使用MySQL)中的数据显示到中TextView.我也使用Button和RadioButton.单击按钮后,数据将显示在中TextView.这是我 ...
- bae 3.0 mysql_bae3.0 mysql 有时报错?报错-问答-阿里云开发者社区-阿里云
Jfinal 用的MySQL的数据源:MysqlDataSource ds = new MysqlDataSource(); Config: MysqlDataSource ds = new Mysq ...
最新文章
- MYSQL 连接数据库命令收藏
- php计算有多少页,PHP 计算页面执行时间
- C#中两个窗体间的数据传递
- 测试博客园Markdown 表格
- wgs84坐标格式转换度分秒_一起爬山吗?寻找GIS坐标系统中“隐秘的角落”
- CACTI 0.87e 安装
- Android App性能測试
- 你想过同时为两家以上的企业工作吗?
- HTML标记之Form表单
- 【CVRP】基于matlab模拟退火算法求解带容量的车辆路径规划问题【含Matlab源码 159期】
- iframe透明解决方案
- Unity2018发布webgl视频无法播放
- Linux系统中CPU占用率较高问题排查思路与解决方法
- 采集利器 - Web Scraper教学及示例
- dytt 爬取磁力链接保存mysql
- win10怎么打开网络计算机,Win10怎么启用网络发现?
- 如何获取AK/SK?(IAM用户)
- 华为主题 主题兑换券活动高端操作
- vc6.0关于code jock在打开多文档debug版本崩溃的问题解决
- 如何保存php网页到桌面,如何将网页保存到电脑桌面上