大数据查询优化经验记录

(主表) count:50793 (从表) count: 50793

目标:从5w多的数据查询GROUP_ID = 308的数据,查询的数据2w多条

测试受限于机器性能以及执行多次下oracle缓存,有一定误差。仅做参考

1 单表不加条件

第一次请求:sql时间:4240,接口返回5811

第二次请求:sql时间:3211,接口返回3293

第二次请求:sql时间:1998,接口返回2753

2 单表加条件(不带索引)

第一次请求:sql时间:1853,接口返回2578

第二次请求:sql时间:1608,接口返回2011

第二次请求:sql时间:1008,接口返回1358

3 单表加条件(带索引)

100ms以内

4 单表 分段查询

分段大小:100(size):sql时间:18231,接口返回18254

500(size):sql时间:4482,接口返回4496

1000(size):sql时间:2523,接口返回2576

5 多表关联查询,分段查询

800(size):sql时间:4125,接口返回4143

5000(size):sql时间:2491,接口返回2510

6 多表关联查询,不分段

第一次请求:sql时间:1740,接口返回1787

第二次请求:sql时间:1871,接口返回1885

第二次请求:sql时间:1713,接口返回1734

7 多表关联查询,多线程分段查询

800(size):sql时间:5140,接口返回5161

5000(size):sql时间:1176,接口返回1196

10000(size):sql时间:1801,接口返回1819

总结:

1 某个索引下的数据量占总数据较大,导致索引不生效

2 分段查询有时能够提升性能,根据分段个数不同效果不同,本次测试认为黄金比例是100

3 一次性需要查询出来很多数据时候,feach-size设置可以提高IO性能(最关键的点)

4 多线程分段查询,性能会快一些,根据分段个数不同效果不同。

5 表关联的时候,尽可能对主表进行过滤在关联

6 关联时候,没必要对主表分页在关联,可以对整个sql分页,因为sql引擎会做优化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值