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
운영게시판
최근게시물
Oracle Q&A 34955 게시물 읽기
No. 34955
[질문] 중대용량 테이블 설계 및 LIKE 쿼리 튜닝
작성자
삼류
작성일
2008-12-14 12:09
조회수
3,579



도서 정보를 담고 있는 테이블이 있습니다.


BOOK_NUM              NUMBER

BOOK_TITLE            VARCHAR2(250)

BOOK_TYPE             VARCHAR2(100)

...



대략 이런수준인데요... 문제는 이 데이타가 최소 500만건 이상인데 제목이나 저자등으로 검색시에


BOOK_TITLE LIKE '%키워드%'


와같이 풀스캔이 일어나는 쿼리를 쓸수밖에 없는 상황입니다.



이런경우 디비나 쿼리를 어떻게 해야 최적화 시킬수 있을까요?


튜닝방법에 대해 조언좀 부탁드립니다.

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

튜닝방법 없습니다.

LIKE 의 경우 인덱스 특성상 전치 일치일경우에만 색인을 타게 됩니다.

LIKE '메롱%' 즉 메롱으로 시작하는 부분만 처리가 가능합니다.


그렇기 때문에

띄워쓰기 단위로 나눠서 형태소 테이블을 만들어서

각각의 단어를 저장한다음


검색어를 각각 띄워쓰기로 나눠서 결과를 교집합 처리해서 검색을 하게 할수 있는데

이 역시 매우 비효율적이고 실제 서비스에 적용하기 힘듭니다.


그렇기 때문에 검색엔진을 구입하는거죠.

dualwiz(dualwiz)님이 2008-12-15 10:13에 작성한 댓글입니다.

full text search 기능에 대해 학습해 보세요.

dreamt님이 2008-12-22 15:53에 작성한 댓글입니다. Edit

도메인 인덱스를 사용해보시죵

이경희(goodguylkh)님이 2008-12-24 16:08에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
34958NOT EXISTS 에 대해서...A , B 테이블에서 B 테이블에 존재 하지 않는 데이터를 뽑을때... [2]
행동하자
2008-12-15
3884
34957여러개의 칼럼을 하나의 primary key로 지정하고 싶은데요. [4]
유재훈
2008-12-14
2608
34956전년대비를 어떻게 구해야할까요? [1]
궁금이
2008-12-14
2188
34955[질문] 중대용량 테이블 설계 및 LIKE 쿼리 튜닝 [3]
삼류
2008-12-14
3579
34953SQL 질문 하나 드릴께요^^; [4]
한희성
2008-12-13
2660
34952저장 프로시저에 Select ... For Update를 사용하려면... [3]
lock초보
2008-12-13
3405
34951저장 프로시저의 OUT 파라미터에 대해서 궁금한 점이 있습니다. 조언바랍니다. [2]
sp초보
2008-12-13
9391
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다