Skip to content

Commit 5cea4d5

Browse files
committed
2017-02-01增加mysql基准压力测试相关
1 parent 2e86d20 commit 5cea4d5

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

Mysql-Test.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# MySQL 测试
2+
3+
4+
## mysqlslap 工具
5+
6+
- 工具的官网说明:<https://dev.mysql.com/doc/refman/5.5/en/mysqlslap.html>
7+
- 对自动生成的数据进行基准测试,生成的数据库名:`mysqlslap`
8+
- 自动生成简单测试数据:`mysqlslap –uroot –p123456 –auto-generate-sql --auto-generate-sql-load-type=mixed --auto-generate-sql-add-autoincrement --engine=innodb --debug-info`
9+
- 其中:`–auto-generate-sql` 也简称:`-a`,所有看到有人这样写的时候要记得理解。
10+
- 自动生成复杂测试数据:`mysqlslap –uroot –p123456 –number-int-cols=7 –number-char-cols=13 –auto-generate-sql --auto-generate-sql-load-type=mixed --auto-generate-sql-add-autoincrement --engine=innodb --debug-info`
11+
- `–number-int-cols=7` 表示生成的表中必须有 7 个 int 类型的列
12+
- `–number-char-cols=13` 表示生成的表中必须有 13 个 char 类型的列
13+
- 对上面生成的数据开始测试:`mysqlslap -uroot -p123456 --concurrency=50,100 --number-of-queries 1000 --iterations=5 --debug-info`
14+
- 分别测试并发为50和100的情况,进行1000次访问(该值一般这样得出来:并发客户数×每客户查询次数)。这样的测试方法迭代5次,最终显示最大、最小、平均值
15+
- 测试结果含义解释:
16+
- Average number of XXXXXXXX:运行所有语句的平均秒数
17+
- Minimum number of XXXXXXXX:运行所有语句的最小秒数
18+
- Maximum number of XXXXXXXX:运行所有语句的最大秒数
19+
- Number of clients XXXXXXXX:客户端数量
20+
- Average number of queries per client XXXXXXXX:每个客户端运行查询的平均数
21+
- 对自己的数据库进行测试:
22+
- 数据库:`youmeek_nav`
23+
- 简单测试语句:`mysqlslap –uroot –p123456 -create-schema=youmeek_nav –query=”SELECT * FROM nav_url;” --debug-info`
24+
- 复杂测试语句:假设我把有3条sql要测试,我把这三条写入到一个 test.sql 文件中,3条sql用分号隔开,文件内容为:`SELECT * FROM sys_user;SELECT * FROM nav_column;SELECT * FROM nav_url; --debug-info`
25+
- 那测试语句可以这样写:`mysqlslap –uroot –p123456 -create-schema=youmeek_nav –query=”/opt/test.sql” –delimiter=”;” --debug-info`
26+
- `–delimiter=”;”` 表示文件中不同 sql 的分隔符是什么
27+
- 其他一些参数:
28+
- `--auto-generate-sql-load-type=XXX`,XXX 代表要测试的是读还是写还是两者混合,该值分别有:read,write,update,mixed,默认是 mixed
29+
- `--auto-generate-sql-add-autoincrement` 代表对生成的表自动添加 auto_increment 列
30+
- `--debug-info` 代表要额外输出 CPU 以及内存的相关信息。
31+
- `--only-print` 只打印测试语句而不连接数据库
32+
## 资料
33+
34+
- <http://www.techug.com/post/mysql-mysqlslap.html>
35+
- <http://jixiuf.github.io/blog/mysql%E5%8E%8B%E5%8A%9B%E6%B5%8B%E8%AF%95/>
36+
- <http://blog.chinaunix.net/uid-25723371-id-3498970.html>
37+
- <>

0 commit comments

Comments
 (0)