gpt4 book ai didi

php - 不存在查询的 MySQL 性能不佳

转载 作者:行者123 更新时间:2023-11-30 23:02:57 24 4
gpt4 key购买 nike

我现在有一个正在生产中的应用程序,它进行 MySQL 查询以选择一个表中的列,而这些列在另一个表中没有关联的行为此,我目前正在使用一个 MySQL 存在的查询,它似乎变得越来越慢并且添加的结果越多越慢。

这是当前查询的一个例子:

SELECT m.ig_media_id, m.media_promotion_id FROM media_promotions m
WHERE m.likes_received < m.likes_requested
AND m.user_id != 19
AND m.active = 1
AND NOT EXISTS
(SELECT * from media_actions m_a WHERE m_a.user_id = 19 AND m_a.ig_media_id = m.ig_media_id)
ORDER BY m.created_at ASC
LIMIT 1

我该怎么做才能加快速度?它目前的运行速度约为 3 秒,这确实减慢了我的应用程序速度。

最佳答案

这是子查询:

NOT EXISTS (SELECT *
from media_actions m_a
WHERE m.user_id = 19 AND m_a.ig_media_id = m.ig_media_id
)

您可以使用索引加快速度:

create index idx_media_actions on media_actions(ig_media_id, user_id)

你也可以这样表述:

NOT EXISTS (SELECT 1
from media_actions m_a
WHERE m.user_id = 19 AND m_a.ig_media_id = m.ig_media_id
)

但是,我认为 MySQL 足够聪明,可以忽略此类子查询中的 *

关于php - 不存在查询的 MySQL 性能不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23185282/

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