【发布时间】:2019-11-08 16:52:47
【问题描述】:
我目前正在抓取我网站上发布的最后 5 个 cmets,我认为这似乎做得很糟糕。
这是 SQL 查询:
SELECT c.comment_id
, c.article_id
, c.time_posted
, a.title
, a.slug
, u.username
FROM articles_comments c
JOIN articles a
ON c.article_id = a.article_id
JOIN users u
ON u.user_id = c.author_id
WHERE a.active = 1
AND c.approved = 1
ORDER
BY c.comment_id DESC
LIMIT 5
我的问题是,必须搜索很多行,这似乎很浪费。我很好奇是否有更好的方法。
如您所见,它给出的行数是 81,486,这看起来有点搞笑。我在这里错过了什么?
【问题讨论】:
-
也许这会有所帮助:explainextended.com/2009/10/23/…
-
如果您只需要获取最后 5 个 cmets,为什么需要
JOIN和articlesANDusers表? -
@Eric 所以它可以显示评论所在的文章名称和评论者的用户名。
标签: php mysql query-optimization