IT源码网

记一次SQL优化 IN换成EXISTS

luoye 2020年09月27日 数据库 523 0

使用IN

SELECT s.* FROM b_cc_work_time_schedule_shift s 
WHERE s.schedule_user_id  in  ( 
	SELECT u.id FROM b_cc_work_time_schedule_user u 
	WHERE u.tenant_id = '321ff495b20b4345b6003f9688cc80e6' 
	AND u.date_day BETWEEN '2019-6-27' AND LAST_DAY('2019-6-27') 
) 

930条数据0.165s
在这里插入图片描述

使用 EXISTS

SELECT s.id FROM b_cc_work_time_schedule_shift s 
WHERE  EXISTS  ( 
	SELECT * FROM b_cc_work_time_schedule_user u 
	WHERE u.tenant_id = '321ff495b20b4345b6003f9688cc80e6' 
	AND u.date_day BETWEEN '2019-6-27' AND LAST_DAY('2019-6-27') 
	AND s.schedule_user_id = u.id 
) 

930条数据0.060s
在这里插入图片描述

效率方面提升了2.75倍

评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!