나는 이것이 펄프에 맞았다는 것을 알고있다 - 그러나 나는 작동하는 정말 좋은 대답을 보지 못했다. 여기 내 상황은 : 나는 다음과 같은 인덱스를 시도했습니다다른 쿼리 그룹 by MySQL 쿼리
SELECT items.item_name, sort_order as total_count, user_top_favorites.item_id.item_id
FROM user_top_favorites
INNER JOIN items ON user_top_favorites.item_id = items.item_id
WHERE user_top_favorites.user_id = 1
GROUP by user_top_favorites.item_id.item_id
ORDER BY sort_order asc
LIMIT 0 , 6
:
user_sort (user_id, item_id, sort_order)
user_sort (item_id, user_id, sort_order)
user_sort (user_id, sort_order, item_id)
그리고 난 항상 얻을 : Using temporary; Using filesort
올바른 인덱스가 여기에 내가 다음 쿼리를 임시 파일과 filesort를 피 하시겠습니까?
UPDATE : user_sort
내가 만든 인덱스의 이름 만이며, 인덱스하여 user_top_favorites
표에 속한다.
제한을 적용하고 그룹화하기 전에 쿼리가 생성하는 행 수는 얼마입니까? – Joni
집계 된 함수가 없는데 왜 그룹을 사용합니까? – Uriil
'user_sort'의 인덱스가 그 테이블을 사용하지 않는 쿼리에 영향을주는 이유는 무엇입니까? –