gpt4 book ai didi

mysql - 另一个表中的最新相关条目

转载 作者:行者123 更新时间:2023-11-29 12:25:42 25 4
gpt4 key购买 nike

我有一个用户表(1,000 条)和一个用户消息表(100,000 条)。我想要一种快速获取所有用户及其最新消息的方法。

我目前使用的是......

SELECT 
u.id, u.name,
(
SELECT note FROM msgs
WHERE msgs.uID=u.id
ORDER BY created_date DESC
LIMIT 1
) as note
FROM users u

现在,如果我将其限制为 20 个用户,则需要 2.5 秒……200 个用户需要 45 秒。

(我已经在 msgs.uID 和 msgs.created_date 上有一个 INDEX。)

我做错了什么?我需要更快更快的查询。

最佳答案

我在发帖前搜索过(没有运气),但找到了this solution发布后立即出现在“相关”侧栏中。

SELECT    u.id, u.first_name, msgs.note
FROM users u
JOIN (
SELECT MAX(created_date) max_date, user_id
FROM msgs
GROUP BY user_id
) msgs_max ON (msgs_max.user_id = u.id)
JOIN msgs m ON (msgs.created_date = msgs_max.max_date AND u.id = msgs.user_id)

好得多,但在我的 table 上仍然大约 1.3 秒。 MySQL 不能做得更快吗?

关于mysql - 另一个表中的最新相关条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28354349/

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