记一次SQL优化 - IN换成EXISTS

你猜 阅读:959 2020-09-27 20:40:44 评论: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倍

声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号