数据查询设置索引后,查询速度依然缓慢,最后查出4000多条数据,
sql:
select --此处省略120个字段项-- WHERE ifhistory=0 and unit_id like '%关键词%' and audit_code=? and service_op=? order by design_date desc,build_unit
数据查询设置索引后,查询速度依然缓慢,最后查出4000多条数据,
select --此处省略120个字段项-- WHERE ifhistory=0 and unit_id like '%关键词%' and audit_code=? and service_op=? order by design_date desc,build_unit
表的总数据量多少? 符合audit_code=? and service_op=? 的条件记录数数多少?
根据个人经验,1亿数据量的表,查询出3000条左右的数据,索引合适的话需要7-8秒时间,当然这个只能参考,和硬件环境关系比较大。
这个语句,建议按照audit_code 和 service_op联立联合索引,然后看一下执行计划是否能使用索引。
15 回答8.2k 阅读
8 回答6k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
1 回答2.2k 阅读✓ 已解决
建议将模糊查询放在最后,将更明确的标识查询往前放例如id,name等,当然也有人证明过 oracle 中where条件执行顺序是从右到左,这个可能要因数据库而异,或者自己进行一下测试!
另外像楼上说的一样,最好尽量少使用或不使用模糊查询或将 like '%%' 改为 like '%'
然后你的 表中为什么会有什么多字段.....