当我们的表变大,性能需要检查也。 我检查了这里所有问题的选项,其中带有136K消息的PM系统和83K行的链接表。
当你只需要计数,或只有ID - 亚历克斯的解决方案是最好的。
SELECT wp_posts.post_author, MAX(wp_posts.post_date), wp_posts.status, wp_posts.post_type
FROM wp_posts
WHERE wp_posts.post_status='publish'
AND wp_posts.post_type='post'
GROUP BY wp_posts.post_author
当你需要其他领域,我需要修改Husky110溶液(以我的表的设计 - 这是唯一的例子 - 不选中),在我的表10X比子查询选项更快:
SELECT wp_posts.* FROM wp_posts,
(Select post_id as pid, max(post_date) maxdate from wp_posts where author = ... group by author order by maxdate desc limit 4) t
WHERE wp_posts.post_status='publish'
AND wp_posts.post_type='post'
AND wp_posts.post_id = pid
此更改可以选择多个帖子(例如一个用户),并可以修改为其他解决方案。
Moshe。
做,这是一个内部查询 ['code'] (SELECT wp_posts的最快方法。* FROM(SELECT * FROM wp_posts ORDER BY wp_post.post_date DESC)as wp_posts WHERE wp_posts.post_status ='publish' AND wp_posts.pos t_type ='post' GROUP BY wp_posts.post_author;) 也许它不是最有效的,但它的工作原理。 – Milos 2011-08-19 12:35:44
我不认为这个问题的接受答案是正确的,并继续在这里的问题http://stackoverflow.com/questions/14770671/mysql-order-by-before-group-by – 2013-02-08 11:05:44
@RobForrest嘿,我很高兴地更新选定的答案:)几年前我问过这个,所以如果有更好的方法,我很乐意将人们指向它 – Tom 2013-02-08 11:42:57