记一次SQL优化 – IN换成EXISTS详解数据库

使用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倍

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/database/5790.html

(0)
上一篇 2021年7月17日 00:21
下一篇 2021年7月17日 00:21

相关推荐

发表回复

登录后才能评论