数据库多表查询效率问题

本文探讨了在项目中遇到的多表查询效率问题。通过比较自然连接、左外连接和组合查询(UNION、INTERSECT、EXCEPT)的性能,最终发现使用组合查询能显著提高查询速度,从3781ms降低到203ms,成功解决了效率问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    今天做项目时,用到了多表查询。有三个表分别为et_task_termtt,et_core_thes_term_category ttc , et_core_thes_terms t 其中tt.termid=t.id、ttc.termid=t.id 刚开始时用自然连接,sql语句为:select t.name from et_task_term tt,et_core_thes_term_category ttc , et_core_thes_terms t where tt.termid=ttc.termid and tt.taskid=50487 and ttc.inschemeid=14653 and ttc.categoryno='56GA' and tt.termid=t.id   运行时间为:3781ms

效率太低下,不能采用这种方式。

然后改为左外连接,sql为:select t.* from et_core_thes_terms t left outer join et_core_thes_term_category ttc on t.id =ttc.termid left outer join et_task_term tt on t.id =tt.termId where ttc.categoryno='56GA'  and tt.taskid=504875  运行时

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值