0
내가 레일 응용 프로그램에 대한 MySQL의에서 세 개의 테이블이 있습니다성능 저하
- 이야기 (ID, 제목, 요약, 괴로움) =>있다 217754 개 기록
- 태그 (ID를, 명) =가> 25,123 레코드
- taggings (story_id, tag_id) => 갖고 갖는다 800,751
이 레일에서 로그이다
스토리로드 (143 00.8ms)
SELECT `stories`.*
FROM `stories` INNER JOIN
`taggings`
ON `taggings`.`story_id` = `stories`.`id` INNER JOIN
`tags` ON `tags`.`id` = `taggings`.`tag_id`
WHERE (tags.id = 3141)
ORDER BY hotness
LIMIT 26 OFFSET 0
14 초 이상 걸립니다. 이야기, 태그 및 태그가있는 모든 색인이 괜찮을 것이라고 확신합니다. 내가 말하는 또 다른 점은 항상 뜨거움이 변하고 있다는 것입니다.
이것은 MySql의 확장성에 관한 것입니까?
PS : 당신이 tags
테이블에서 아무것도 사용하지 않기 때문에 설명 결과 =>https://gist.github.com/iCEAGE/8622705
해당 쿼리에 대한 EXPLAIN 출력은 무엇입니까? 쿼리에 SELECT 횟수 (*)를 사용하면 합리적인 결과를 얻을 수 있습니까? – scraatz
이것은 MySQL의 확장성에 관한 것이 아닙니다. 이는 색인이 잘못되었거나 특정 태그와 일치하는 데이터의 * 로트 *에 관한 것입니다. 테이블에있는 색인을 게시하십시오. –
@scraatz EXPLAIN 출력이 PS에 추가되었습니다. SELECT count (*)는 합리적인 결과를 가졌습니다. 약 0.3 초입니다. –