记一次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倍

发布了240 篇原创文章 · 获赞 66 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/u014131617/article/details/93859927