In语句优化

本文对比了使用IN语句与连接方式在SQL查询中的性能表现。针对两张数据量分别为1400与210000的大表进行操作时,连接方式显著提升了查询速度,从80秒缩短到了0.17秒。

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

[b]In语句的优化[/b]
现有两张表:
CLINIC_ORGANISM 数据量:1400
LAB_DRUGRESISTITEM 数据量:210000

其中LAB_DRUGRESISTITEM 中的ORGANISMID对应CLINIC_ORGANISM中的ID
现要求取得 LAB_DRUGRESISTITEM中涉及的所有CLINIC_ORGANISM的详情

通过如下两种方式进行SQL查询
1、通过IN方式

SELECT CO.* FROM CLINIC_ORGANISM CO WHERE CO.ID
IN(
SELECT DISTINCT(LD.ORGANISMID)
FROM LAB_DRUGRESISTITEM LD
WHERE LD.ISVALID = 1
) AND CO.ISACTIVE = 1 ;

执行时间:80s
执行计划如下:
[img]http://dl2.iteye.com/upload/attachment/0098/5150/54488c45-df2d-3612-a132-950248873f77.jpg[/img]
2、通过连接方式

SELECT CO.*
FROM CLINIC_ORGANISM CO
INNER JOIN
(
SELECT DISTINCT(LD.ORGANISMID) AS OGID
FROM LAB_DRUGRESISTITEM LD
WHERE LD.ISVALID = 1
)TEMP
ON CO.ID = TEMP.OGID;

执行时间0.17s
执行计划如下:
[img]http://dl2.iteye.com/upload/attachment/0098/5152/1d6efa8e-4e2d-3f6b-baa0-308a90d9a37c.jpg[/img]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值