<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[TNF : Tatter Network Foundation forum - 태그 가져오는 쿼리로 인한 혹시 모를 문제점입니다.]]></title>
		<link>http://forum.tattersite.com/ko/viewtopic.php?id=2858</link>
		<description><![CDATA[태그 가져오는 쿼리로 인한 혹시 모를 문제점입니다. 의 최근 RSS 글들.]]></description>
		<lastBuildDate>Fri, 16 Feb 2007 11:06:12 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[RSS 답글: 태그 가져오는 쿼리로 인한 혹시 모를 문제점입니다.]]></title>
			<link>http://forum.tattersite.com/ko/viewtopic.php?pid=16586#p16586</link>
			<description><![CDATA[<p>음.. 엉뚱한 글인진 모르겠지만, TagReplations 테이블의 인덱스키에<br />PRIMARY 로 owner, tag, entry 가 물려있고, <br />INDEX 키로 owner이 또한번 물려있습니다.</p><p>MySQL의 경우 프라이머리키와 인덱스는 중복으로 걸릴수 없어서 경고가 뜨게 되는데,<br />뭐 경고를 무시하고 설정은 할수 있지만, 이것때문에 검색효율이 떨어지는건 아닐까 하는 생각이.. ^^;</p><p>릴레이션 테이블인 만큼, 프라이머리키가 없이 세개를 따로따로 INDEX를 걸어주면 어떤지 한번 테스트를 해보시고 누가 속도를 측정해주셨으면 좋겠네요. 저는 별로 Row가 많지 않아서 테스트가 잘 안되네요.</p><p>각각 INDEX를 거는것보다 프라이머리키로 3개 필드를 묶어주는게 빠르다면 INDEX키로 걸려있는 owner 을 없애는건 어떤가요?</p>]]></description>
			<author><![CDATA[null@example.com (dikafryo)]]></author>
			<pubDate>Fri, 16 Feb 2007 11:06:12 +0000</pubDate>
			<guid>http://forum.tattersite.com/ko/viewtopic.php?pid=16586#p16586</guid>
		</item>
		<item>
			<title><![CDATA[RSS 답글: 태그 가져오는 쿼리로 인한 혹시 모를 문제점입니다.]]></title>
			<link>http://forum.tattersite.com/ko/viewtopic.php?pid=16513#p16513</link>
			<description><![CDATA[<div class="quotebox"><cite>gendoh 작성:</cite><blockquote><p>일단 화면 출력 설정에서 태그를 랜덤이 아닌 인기도 등으로 변경하면 부하가 줄어든다는;;;</p></blockquote></div><p>제 의도는 안쓰는게 아니라 쓰되 효율적으로 갈수 있는 부분이 있지 않을까하는 부분이였습니다. ^^;<br />랜덤태그 매력있는 놈인데 안쓰기에는 아깝죠.</p>]]></description>
			<author><![CDATA[null@example.com (영민C)]]></author>
			<pubDate>Tue, 13 Feb 2007 07:43:22 +0000</pubDate>
			<guid>http://forum.tattersite.com/ko/viewtopic.php?pid=16513#p16513</guid>
		</item>
		<item>
			<title><![CDATA[RSS 답글: 태그 가져오는 쿼리로 인한 혹시 모를 문제점입니다.]]></title>
			<link>http://forum.tattersite.com/ko/viewtopic.php?pid=16511#p16511</link>
			<description><![CDATA[<p>일단 화면 출력 설정에서 태그를 랜덤이 아닌 인기도 등으로 변경하면 부하가 줄어든다는;;;</p>]]></description>
			<author><![CDATA[null@example.com (gendoh)]]></author>
			<pubDate>Tue, 13 Feb 2007 05:30:17 +0000</pubDate>
			<guid>http://forum.tattersite.com/ko/viewtopic.php?pid=16511#p16511</guid>
		</item>
		<item>
			<title><![CDATA[태그 가져오는 쿼리로 인한 혹시 모를 문제점입니다.]]></title>
			<link>http://forum.tattersite.com/ko/viewtopic.php?pid=16510#p16510</link>
			<description><![CDATA[<p>금일 운영중인 블로그의 페이지 로드 속도가 엄청 느려지며 급기야 서버의 cpu점유율이 100%을 향해 계속 치닫는 상황이<br />발생 하였으며, mysql프로세스를 체크하던중에 아래의 쿼리가 엄청난 지연시간을 가져오며 이로인한 원인이라 판단하여<br />쿼리를 수정후(수정한 쿼리는 운영중인 블로그에 맞게 임의대로 수정한 것임) 문제가 사라지게 되었으며, 타 쿼리들은 모두<br />이상없이 처리 되고 있었습니다.)</p><p>먼저 mysql프로세스에서 계속 물려 있던 쿼리는 다음과 같습니다. (태그 뿌려주는 쿼리죠)</p><p>SELECT `name` FROM `{$database[&#039;prefix&#039;]}Tags` t,<br />&nbsp; &nbsp; `{$database[&#039;prefix&#039;]}TagRelations` r,<br />&nbsp; &nbsp; `{$database[&#039;prefix&#039;]}Entries` e<br />&nbsp; &nbsp; WHERE r.entry = e.id AND e.visibility &gt; 0 AND t.id = r.tag AND r.owner = $owner <br />&nbsp; &nbsp; GROUP BY r.tag <br />&nbsp; &nbsp; ORDER BY RAND() $aux</p><p>위 쿼리에서 사용된 테이블의 레코드수를 보면<br />entries테이블에는 약 1990여개의 레코드<br />tagrelations테이블에는 약 3400여개의 레코드<br />tags테이블에는 약 2000여개의 레코드를 가지고 있는 상황입니다.<br />(문제가 되었던 블로그 외에 2개의 블로그를 더 운영중이지만 해당 레코드수가 적어서 그런것인지는 몰라도 나머지 블로그<br />는 해당 쿼리가 모두 정상 처리 되고 있었습니다.)</p><p>이상이 없다가 갑자기 발생한 일이라서 다른 원인이 있을수 있겠지만(다른 원인과 우연히 겹쳐서 발생한 일일수도 있고...) 쿼<br />리 수정후 문제가 없어졌기에 이렇게 글을 쓰게 됐습니다.</p><p>mysql에 발만 담근 정도라 어떠한 생각을 말씀드리는것도 어려운 상황이라 이부분에 있어 한번 체크를 해주시면 어떨까 합니다.</p>]]></description>
			<author><![CDATA[null@example.com (영민C)]]></author>
			<pubDate>Tue, 13 Feb 2007 04:53:09 +0000</pubDate>
			<guid>http://forum.tattersite.com/ko/viewtopic.php?pid=16510#p16510</guid>
		</item>
	</channel>
</rss>
