태그가있는 블로그 게시물이 포함 된 데이터베이스가 있고 해당 태그가있는 블로그 게시물을 검색하려고한다고 가정합니다.여러 쿼리 대신 하나의 조인 된 쿼리를 사용하면 성능이 향상됩니까?
나는 두 개의 쿼리를 수행 할 수 있습니다
SELECT title, text, date
FROM POSTS
WHERE id = 1
및
SELECT tag
FROM TAGS
WHERE post_id = 1
을 나는 또한 하나의 쿼리에서 그것을 할 수 그러나 :
SELECT title, text, date, tag
FROM POSTS, TAGS
WHERE posts.id = 1
AND tags.post_id = posts.id
후자는 약간 낭비, 왜냐하면 동일한 제목, 텍스트 및 날짜 열을 블로그 게시물에있는 태그 수만큼 전송하기 때문에 더 빠를 수 있습니다. 왜냐하면 서버에 단 하나의 트립이 있습니다.
중복 데이터 전송을 피하는 후자 쿼리에 대한 대안이 있습니까? 아니면 별 문제가 아니므로 사용하지 않는 여분의 바이트를 수백 개씩 전송하는 것이 두 개의 별도 쿼리를 만드는 것보다 저렴하기 때문에 어쨌든 사용해야합니다.
태그 값이 결과 세트를 부 풀리는 것처럼 보입니다. 쉼표로 구분 된 태그 값 목록과 같이 사용자 요구에 더 적합한 형식이 있습니까? –
쉼표로 구분 된 목록은 태그별로 게시물을 나열 할 때 그다지 효과적이지 않습니다. – Tom