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
운영게시판
최근게시물
MS-SQL Q&A 3846 게시물 읽기
No. 3846
대용량 DB의 페이징 쿼리문과 인덱스에 대해 궁금합니다.
작성자
11월
작성일
2007-11-01 13:48ⓒ
2007-11-01 13:57ⓜ
조회수
3,768

안녕하세요...

한참을 고민하다가 이렇게 글을 올립니다.

다름이 아니라 아래와 테이블이 있습니다.

TABLE PRODUCT (상품정보)

ID : 상품번호 PRIMARY KEY
TITLE : 제목

ID   TITLE
1    홍길동
2    유관순
3    김유신

TABLE CATEGORY (상품 카테고리 정보, 조회수)

NUM : 번호
CAT : 카테고리 번호
ID : 상품정보
COUNT : 조회수

NUM CAT ID COUNT
1      AA    1    23
2      BB    1    456
3      AA    2     12
4      CC    3    98
5      AA    1    56

여기서 선택한 카테고리번호에 해당하는 제품들을 COUNT 순으로 중복없이 나열하고 싶습니다.

전 쿼리문을 아래와 같이 했습니다.

SELECT TOP (테이블 목록갯수) AA.ID, TITLE FROM PRODUCT AA INNER JOIN (SELECT ID, MAX(COUNT) AS COUNT FROM CATEGORY WHERE CAT = 'AA' GROUP BY ID) BB
ON AA.ID = BB.ID WHERE AA.ID NOT IN (SELECT TOP ((page-1)*테이블 목록갯수) AA.ID  FROM PRODUCT AA INNER JOIN (SELECT ID, MAX(COUNT) AS COUNT FROM CATEGORY WHERE CAT = 'AA' GROUP BY ID) BB
ON AA.ID = BB.ID ORDER BY BB.COUNT ASC) ORDER BY BB.COUNT ASC
일단 위와 같은 쿼리문 성는면에서 맞는지요?? 틀리다면 쿼리문을 어떻게 해야하느지요??

또한 저러한 구조의 테이블은 인덱스를 어떻게 주는게 적절한지 궁금합니다.

참고로 PRODUCT 테이블은 백만건 정도 되구요... CATEGORY 테이블은 몇백만건입니다.

주위에 물어볼사람이 아무도 없습니다. ㅠ.ㅠ 답변주시면 넘 감사드립니다. ㅠ.ㅠ

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

많이 데이터가 있을시는 top으로하시면 많은 부하가 걸립니다.


될수 있으면 where 구절을 걸어서 어느정도 짜르게 하시는게 좋습니다.

김병석(byung82)님이 2007-11-09 00:14에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
3849열데이터를 행데이터로 넣고 싶은데요. [2]
새신랑
2007-11-02
3442
38483개 테이블 연결 쿼리 질문입니다. [1]
Wenzie
2007-11-02
3391
3847ORDER BY 쿼리문에서 select 시 top 있고 없고 차이가 생기는데.. [1]
김태형
2007-11-01
3684
3846대용량 DB의 페이징 쿼리문과 인덱스에 대해 궁금합니다. [1]
11월
2007-11-01
3768
3845오라클 Crate Table .. AS Select ... 문과 같은것 있나요? [3]
jetsetty
2007-11-01
3534
3844랜덤하게 10%를 특정값이 지정된 값으로 변경
장기주
2007-10-31
3247
3843필드에 문자열 추가하여 업데이트 하기 [3]
몰라몰라
2007-10-31
3377
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.024초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다