gpt4 book ai didi

mysql - 重写查询以避免 not in 并提高性能

转载 作者:行者123 更新时间:2023-11-30 22:47:17 25 4
gpt4 key购买 nike

我想选择所有没有关联样式的图片。我有一个样式表,可以将样式与其图片进行映射。这是我现在的查询:

SELECT picture.id, picture.caption, picture.lowresimageurl, picture.medresimageurl
FROM instagram_shop_picture picture
INNER JOIN instagram_shop shop ON shop.id = picture.shop_id
WHERE picture.deletedAt IS NULL
AND picture.isLocked = 0
AND picture.isShown = 1
AND picture.isTestimonial = 0
AND shop.deletedAt IS NULL
AND shop.isLocked = 0
AND shop.expirydate IS NOT NULL
AND shop.expirydate > now()
AND picture.id NOT IN (SELECT style.picture_id FROM instagram_picture_style style)

由于某种原因,此查询运行缓慢。我怎样才能重写它而不必使用 NOT IN

最佳答案

SELECT picture.id, picture.caption, picture.lowresimageurl, picture.medresimageurl
FROM instagram_shop_picture picture
INNER JOIN instagram_shop shop ON shop.id = picture.shop_id
left join instagram_picture_style style on style.picture_id = picture.id
WHERE picture.deletedAt IS NULL
AND picture.isLocked = 0
AND picture.isShown = 1
AND picture.isTestimonial = 0
AND shop.deletedAt IS NULL
AND shop.isLocked = 0
AND shop.expirydate IS NOT NULL
AND shop.expirydate > now()
and style.picture_id is null

instagram_picture_style 表的子查询改为左联接并添加新条件 style.picture_id is null

加入 will be faster than 子查询

关于mysql - 重写查询以避免 not in 并提高性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29247481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com