그룹화 : 표는 동일하거나 서로 다른 user_id
의 데이터를 포함 할 수 있습니다MySQL의 쿼리 정렬/I는 다음과 같은 필드 테이블 '내용'이 성능
id (an unique, increasing identifier)
user_id
content1
content2
content3
...
합니다. 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
그것은 작동하지만 테이블이 커짐에 한 번, 성능이 너무 느린됩니다. 누군가이 쿼리를 개선하는 방법에 대한 조언을 제공 할 수 있습니까? 하위 조회가 content
테이블에 각 행에 대한 실행되기 때문에
테이블의 색인은 무엇입니까? – Fluffeh
이것은 MySQL 매뉴얼에서 설명합니다 : http://dev.mysql.com/doc/refman/5.5/en/example-maximum-column-group-row.html –