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 28094 게시물 읽기
No. 28094
[질문] like 검색 빨리 할수 있는 방법이 없나요?
작성자
새벽소리(sangsik)
작성일
2009-03-19 09:26
조회수
5,167


안녕하세요.

현재 실행되는 100만건 정도 되는 테이블에서 쿼리는 아래와 같습니다.


select testname  from testtable

where (name1 like '%Ta%' or name2 like '%Tb%') and name3 like '%Tc%



like 검색은 테이블에 key값 잡아줘도 인덱스 안타는것으로 알고 있는데 맞는지 모르겠네요.


like 검색이 들어가서 select 하는데 오래 걸리는것 같아요.

좀 빨리 하는 방법이 없을까요?


그럼. 감사합니다.







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

like 사용시 조건을 '%Ta%'와 같이 앞에 '%'가 있으면 인덱스를 타지 못합니다.

xxx님이 2009-03-19 10:01에 작성한 댓글입니다. Edit

안녕하세요 박성원입니다. 

xxx님이 잘 답변해주셨는데요

조금더 추가하자면

like의 경우 keyword를 이용한 TEXT 검색인데요 

또한, index는 앞쪽에서 순서대로 정렬한 것을 말합니다. 

그럼 앞에 어떠한 값이 오는지 모르고 중간문자나 끝문자를 이용한 검색을 하게되면
index 자체는 무용지물이 되는것이지요

그래서 "%TEXT"는 FullScan을 "TEXT%" 식의 문자는 index를 타게됩니다.



그럼 즐거운 주말 되시길...

박성원(darkancia)님이 2009-03-20 11:46에 작성한 댓글입니다.

이 문제가 DB상에서 쉽게 해결이 될 수 있다면 검색엔진을 만들어 먹고사는 업체들은 몽창 폐업...

 

(그래서 검색엔진을 도입해서 사용합니다. )

우욱님이 2009-03-24 02:24에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
28097myisam을 innodb로 그냥 변경해도 되나요? [3]
이왕태
2009-03-23
6120
28096mysql cluster 문의 드립니다.
정화용
2009-03-21
5173
28095판매리스팅후 합계 갯수가 나와야 하는데.. 쿼리문 조언을 구합니다.
합계
2009-03-21
5314
28094[질문] like 검색 빨리 할수 있는 방법이 없나요? [3]
새벽소리
2009-03-19
5167
28093MySQL DB 백업 후 복구할 때 발생하는 Error 질문 [2]
DB남
2009-03-18
6483
28091jsp로 홈페이지 만들때 연동하는 방법좀... [2]
황인철
2009-03-15
5993
28090phpmyadmin에서 MySQL connection collation을 어떤걸로 해야하나요? [1]
이성훈
2009-03-15
6330
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다