주제: 태그 가져오는 쿼리로 인한 혹시 모를 문제점입니다.
금일 운영중인 블로그의 페이지 로드 속도가 엄청 느려지며 급기야 서버의 cpu점유율이 100%을 향해 계속 치닫는 상황이
발생 하였으며, mysql프로세스를 체크하던중에 아래의 쿼리가 엄청난 지연시간을 가져오며 이로인한 원인이라 판단하여
쿼리를 수정후(수정한 쿼리는 운영중인 블로그에 맞게 임의대로 수정한 것임) 문제가 사라지게 되었으며, 타 쿼리들은 모두
이상없이 처리 되고 있었습니다.)
먼저 mysql프로세스에서 계속 물려 있던 쿼리는 다음과 같습니다. (태그 뿌려주는 쿼리죠)
SELECT `name` FROM `{$database['prefix']}Tags` t,
`{$database['prefix']}TagRelations` r,
`{$database['prefix']}Entries` e
WHERE r.entry = e.id AND e.visibility > 0 AND t.id = r.tag AND r.owner = $owner
GROUP BY r.tag
ORDER BY RAND() $aux
위 쿼리에서 사용된 테이블의 레코드수를 보면
entries테이블에는 약 1990여개의 레코드
tagrelations테이블에는 약 3400여개의 레코드
tags테이블에는 약 2000여개의 레코드를 가지고 있는 상황입니다.
(문제가 되었던 블로그 외에 2개의 블로그를 더 운영중이지만 해당 레코드수가 적어서 그런것인지는 몰라도 나머지 블로그
는 해당 쿼리가 모두 정상 처리 되고 있었습니다.)
이상이 없다가 갑자기 발생한 일이라서 다른 원인이 있을수 있겠지만(다른 원인과 우연히 겹쳐서 발생한 일일수도 있고...) 쿼
리 수정후 문제가 없어졌기에 이렇게 글을 쓰게 됐습니다.
mysql에 발만 담근 정도라 어떠한 생각을 말씀드리는것도 어려운 상황이라 이부분에 있어 한번 체크를 해주시면 어떨까 합니다.