ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

十三、压力测试

2021-02-15 17:03:42  阅读:217  来源: 互联网

标签:十三 seconds number -- user 测试 queries 压力 id


1、生成一个100W数据的表,可参考: 快速生成100W数据mysql表

mysql>  select count(*) from vote_record;
+----------+
| count(*) |
+----------+
|  1000000 |
+----------+
1 row in set (0.12 sec)

mysql> select * from vote_record limit 5;
+----+----------------------+---------+----------+---------------------+
| id | user_id              | vote_id | group_id | create_time         |
+----+----------------------+---------+----------+---------------------+
|  1 | RszjFhc2pOEE7vZjq0AJ |     633 |       42 | 2021-02-14 18:43:26 |
|  2 | p7cvK4Xq3QVWJG20LBB3 |     113 |       89 | 2021-02-14 18:43:26 |
|  3 | i8DAVFnKtW9LdEpVfjD3 |     107 |       82 | 2021-02-14 18:43:26 |
|  4 | ZNSQpmqRSDmMFNRKYvry |      78 |       22 | 2021-02-14 18:43:26 |
|  5 | 3XrcwQwUPhJDQ92zzZ4e |     629 |       92 | 2021-02-14 18:43:26 |
+----+----------------------+---------+----------+---------------------+
5 rows in set (0.00 sec)

2、未做索引跟优化之前的测试
测试语句如下,注意建表时已经设置了user_id为辅助索引,需要删除

#删除user_id的辅助索引
mysql> alter table vote_record drop index  index_user_id;

#使用2000个线程进行压力测试查询
mysqlslap --defaults-file=/etc/my.cnf \
--concurrency=100 --iterations=1 --create-schema='test' \
--query="select * from school.vote_record where user_id='RszjFhc2pOEE7vZjq0AJ'" engine=innodb \
--number-of-queries=2000 -uroot -p123 -verbose

#登录mysql可以看到有2000个线程正在查询
mysql> show processlist;

3、花费时间如下

$ mysqlslap --defaults-file=/etc/my.cnf \
> --concurrency=100 --iterations=1 --create-schema='test' \
> --query="select * from school.vote_record where user_id='RszjFhc2pOEE7vZjq0AJ'" engine=innodb \
> --number-of-queries=2000 -uroot -p123 -verbose
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
Benchmark
	Running for engine rbose
	Average number of seconds to run all queries: 398.598 seconds
	Minimum number of seconds to run all queries: 398.598 seconds
	Maximum number of seconds to run all queries: 398.598 seconds
	Number of clients running queries: 100
	Average number of queries per client: 20

4、给user_id列创建索引

mysql> alter table vote_record add unique index uidx_id(user_id);

5、花费时间如下

$ mysqlslap --defaults-file=/etc/my.cnf \
> --concurrency=100 --iterations=1 --create-schema='test' \
> --query="select * from school.vote_record where user_id='RszjFhc2pOEE7vZjq0AJ'" engine=innodb \
> --number-of-queries=2000 -uroot -p123 -verbose
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
Benchmark
	Running for engine rbose
	Average number of seconds to run all queries: 0.138 seconds
	Minimum number of seconds to run all queries: 0.138 seconds
	Maximum number of seconds to run all queries: 0.138 seconds
	Number of clients running queries: 100
	Average number of queries per client: 20

You have new mail in /var/spool/mail/root

可以看到速度快的一批

学习来自:郭老师博客,老男孩深标DBA课程 第四章

标签:十三,seconds,number,--,user,测试,queries,压力,id
来源: https://www.cnblogs.com/tz90/p/14403974.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有