性能测试调优之SQL优化
作者:性能测试 发布时间:[ 2021/3/15 17:32:36 ] 推荐标签:性能测试
1.对于并发性的SQL
少用(不用)多表操作(子查询,联合查询),而是将复杂的SQL拆分多次执行。如果查询很原子(很小),会增加查询缓存的利用率。
2.大量数据的插入
多条 insert或者Load data into table(从文件里载入数据到表里)
建议,先关闭约束及索引,完成数据插入,再重新生成索引及约束。
针对于myisam,步骤:
Alter table table_name disable keys; 禁用索引约束
大量的插入
Alter table table_name enable keys; 启用
针对innodb,步骤:
Drop index, drop constraint 删除索引及约束,要保留主键
Begin transaction|set autocommit=0; 开启事务,不让他自动提交
[数据本身已经按照主键值排序]
大量的插入
Commit;
Add index, add constraint
3.分页
分页假定Limit offset, size; size = 10;
Page |
offset |
5 |
40, 10 |
50 |
490, 10 |
5000 |
4990, 10 |
500000 |
499990, 10 |
Limit 的使用,会大大提升无效数据的检索(被跳过),因为是先检索,检索会检索全部,再取得想要的。好的做法是使用条件等过滤方式,将检索到的数据尽可能精确定位到需要的数据上。
4.随机选一些数据,不要使用Order by Rand()
上面的查询,会导致每条记录都执行rand(),成本很高!
个人建议,通过mt_rand(),先确定的随机主键,再从数据表中获取数据。
推荐阅读:
相关推荐
更新发布
兼容性测试覆盖多少机型,如何选择?
2024/9/10 11:13:49P-One 在进行性能测试时,如何确保测试结果的准确性和可靠性?
2024/9/10 10:14:12为什么越来越多的企业选择一站式测试平台?
2024/9/9 18:04:26功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29