database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 29211 게시물 읽기
No. 29211
조인하는데 속도 안나옵니다.
작성자
우렁씨
작성일
2009-08-01 18:30
조회수
5,463

 

테이블 A는 게시판 테이블입니다.
그리고 B는 이미지 테이블고요.

A(게시판테이블)을 기준으로 B(이미지테이블)을 불러오는데 A에 값이 있어도 B에 이미지는 없을수도 있습니다.

그래서 리스트 뽑아오는데
select A.idx, B.paht from A left join B on A.idx = B.parent where A.subject!='' group by A.idx order by A.idx desc

이렇게 해서 게시판 기준으로 이미지 없어도 뽑아오게 했습니다.
그런데 겨우 1000개 미만인데도 3초이상 걸리네요.

right join하면 0.01초 대이지만 이미지 있는것만 뽑아오기에 적합지 않고요.

혹시 이럴때 속도 개선을 위해 할일은 무엇일까요?
아니면 게시물 쿼리와 이미지뽑는 쿼리를 따로 작성해야 하는지 ?

아시는 분 답변좀 부탁드려요

이 글에 대한 댓글이 총 1건 있습니다.

우선은 테이블에 정의되어 있는 인덱스 정보를 알아야 쿼리의 효율을 측정할 수 있습니다.

해당 쿼리문 앞에 explain을 붙여 실행해보세요. 사용가능한 인덱스와 실제 구해지는 row의 개수를 통해 현재 사용중인 쿼리가 왜 느린지 가늠해볼 수 있습니다.

 

기본적으로 a.idx, b.parent에 인덱스가 없어보입니다.

다른 부분도 손볼 수 있겠지만, 테이블 설계를 모르니 더 이상 말씀드리기는 어렵겠네요.

desc a와 desc b의 결과를 올려주시면 다른 분들이 해당 쿼리를 분석하는데 도움이 되리라 생각됩니다.

박현우(lqez)님이 2009-08-03 09:49에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
29214varchar 로 되어있는 필드의 특정 내용만 바꾸기? [3]
푸르미
2009-08-04
6303
29213살려주세요 ㅜㅜ
김현집
2009-08-03
5561
29212localhost가 아니라 domain으로 connect 시도할때..
서정미
2009-08-03
5728
29211조인하는데 속도 안나옵니다. [1]
우렁씨
2009-08-01
5463
29210시리얼통신 값저장... [1]
이준영
2009-08-01
5955
29209시리얼통신한 값을 DB에 저장하려고합니다. [1]
이준영
2009-07-31
6121
29208중복이 없는데도 duplicate entry 에러 [1]
질문
2009-07-31
10170
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다