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 28015 게시물 읽기
No. 28015
이 쿼리문 속도 개선 가능할까요?
작성자
Love_SQL
작성일
2009-02-11 19:05
조회수
4,692

select A.wr_subject, A.wr_id, A.wr_comment, trim(substring(A.wr_datetime,3,9))

from 테이블 A inner join 테이블 B on A.wr_num=B.wr_num

and A.wr_id=B.wr_parent and A.wr_is_comment!=B.wr_is_comment

where (to_days(B.wr_datetime) >= (to_days(now()) - 30)) and B.mb_id = '아이디'

group by A.wr_parent

order by B.wr_id desc

 

일단 테이블 A,B는 동일 테이블입니다.

테이블 행의 갯수는 대략 60만개정도구요.

 

아무래도 조인문이다보니 60만개의 테이블 2개(맞나? -0-)를 불러와서 비교하는거라 그런지 시간이 많이 걸립니다. 대략 1.6초~1.7초정도 걸리는데 이걸 1초 이내로 줄이는게 목표입니다.

원래는 where문에 날짜조건이 없으면 1.8~1.9초정도 걸리는데 저 조건문을 넣으니까 0.1~0.2초정도 단축이 된거 같더라구요.

 

근데 제 생각에는 쿼리문을 보면

일단 테이블에서 전체행을 다 가져온다음에 비교를 시작하는거라

오래걸리는게 아닐까 싶습니다.

 

그래서 궁금한데 처음에 데이터를 가져올때 조건문으로 필터링이 된걸 가져와서 조인을 할 수는 없는건가요?

 

고수분들 도와주세요 ㅠㅠ;

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

-. explain 을 붙인 실행 결과를 같이 올려주시면 조금 더 판단이 쉽습니다.

 

-. query의 습휘드~~는 DATA를 disk에서 적게 퍼 올리느냐 입니다.

날짜조건이 있으나 없으나 똑같다면 생각하신 것처럼 몽창 퍼 올리는 것으로 볼 수 있겠지만 날짜조건이 들어가서 실행시간이 바뀐다면(캐쉬에 의해 단축되는 것이 아니라는 조건으로) 몽창 다 퍼 올리는 것은 아닌 것으로 생각됩니다.

 

날짜에 맞는 entity만 골라서 join을 하기 때문에 조건이 있을때와 없을때의 시간이 차이가 나고 있습니다.

모두 다 가져와서 필터링을 한다면 수행 시간은 거의 동일하게 보이실 겁니다.

우욱님이 2009-02-12 10:43에 작성한 댓글입니다. Edit

A, B 가 동일 테이블이라고 말씀하신건 SlefJoin 을 말씀하신건가요?


질의어만 보고 판단이 잘 안서는데요 혹시 table 구조를 올려주실수 있을까요?


박성원(darkancia)님이 2009-02-13 10:32에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
28018재고쿼리문의 기준일자에 관한 조언을 구합니다. [1]
재고쿼리문
2009-02-12
5284
28017쿼리문좀 도와주십시요.. [1]
곰돌이
2009-02-12
4951
28016PRIMARY KEY 문의 드려요~ [1]
새벽소리
2009-02-12
4953
28015이 쿼리문 속도 개선 가능할까요? [2]
Love_SQL
2009-02-11
4692
28014DB 중복 자료 제외 하고 합계 나오게 할려 하는데 잘 안되네요.. [3]
정경수
2009-02-11
4899
28013DB 시작시 Auto Commit 이 안 되게 설정하는 방법이 있는지요? [2]
김승동
2009-02-11
5001
28012[자문자답] DB 문자셋 중 변경이 제대로 안 되는 것이 있는데 왜 그런지 아시는분 계시나요? [1]
김승동
2009-02-10
4584
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.026초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다