我有以下字段的表「內容」:MySQL查詢排序/分組性能
id (an unique, increasing identifier)
user_id
content1
content2
content3
...
該表可以包含來自相同或不同的user_id
數據。我試圖選擇按content
字段之一排序的數據。不過,我只想從不同的「USER_ID」選擇數據,並始終以用戶的最新條目(所以最高id
值)。我不能簡單地group by user_id
,因爲編組發生在排序之前。
這就是我目前做:
SELECT *
FROM `content`
WHERE `content`.`id` = (
SELECT `id`
FROM `content` as `alt`
WHERE `alt`.`user_id` = `content`.`id`
ORDER BY `id` DESC
LIMIT 1)
ORDER BY content1 DESC
它的工作原理,但一旦表變得更大,性能變得太慢。 有人可以給我一個建議如何改善此查詢?
桌上的索引是什麼? – Fluffeh 2012-07-08 02:06:31
這在mysql手冊中進行了說明:http://dev.mysql.com/doc/refman/5.5/en/example-maximum-column-group-row.html – 2012-07-08 04:55:54