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
운영게시판
최근게시물
PostgreSQL Q&A 4394 게시물 읽기
No. 4394
김상기님의 풀텍스트 인덱스에 관한 질문입니다 ^^;
작성자
신기배(nonun)
작성일
2002-10-19 22:52
조회수
1,391

안녕하세요.

 

김상기님의 풀텍스트 인덱스에 관한걸 예전에 보았는데

써먹지 못하다가 최근 쓸데가 생겨서 무단전제를 할까 하여 테스트 하던중 =_=;

text 타입에 대한 like 검색에서 인덱스를 사용할까? 라는 의문이 들어서 질문 드립니다.

 

김상기님의 글중에

ioseph=# EXPLAIN ANALYZE SELECT a.* FROM board a, board_fti_title b WHERE b.ftikey LIKE '안녕%' AND a.num = b.num;

NOTICE: QUERY PLAN:

 

Nested Loop (cost=0.00..41.25 rows=5 width=40) (actual time=0.16..0.18 rows=1 loops=1)

-> Index Scan using board_fti_keyi on board_fti_title b (cost=0.00..17.07 rows=5 width=4) (actual time=0.09..0.10 rows=1 loops=1)

-> Index Scan using board_num_key on board a (cost=0.00..4.82 rows=1 width=36) (actual time=0.05..0.06 rows=1 loops=1)

Total runtime: 0.48 msec

 

라는 부분이 있습니다. 근데 분명히 board_fti_keyi는 text 자료형이고 like 로 검색하는데도 인덱스를 사용한다고 나오는데요..

 

제가 테스트 하니까 역시나 인덱스를 사용하지 않습니다 ㅠ_ㅠ

제가 잘못된건지 궁금합니다. 7.2.1 컴파일한것과 RPM두가지를 두대의 리눅스에서 사용하고 있습니다.

 

CREATE TABLE test (a text);

CREATE INDEX test_a ON test(a); <- 이렇게도

 

CREATE TABLE test (a text);

CREATE INDEX test_a ON test using hash (a); <- 이렇게도

 

데이터를 몇개 대충 때려 넣구요

이런식으로 BTREE, HASH 두가지의 인덱스를 만들어서 따로 테스트 해보았는데도

 

netitup=# EXPLAIN SELECT a from test where a like 'a%';

NOTICE: QUERY PLAN:

 

Seq Scan on test (cost=0.00..1.05 rows=1 width=32)

 

이렇게만 나옵니다 =_=;

 

어째서 일까요 -_-;

참고로 제가 지금 쓰는 pgsql 서버 두개는 같은 내용을 담고 있고요.

20개의 테이블, 13개의 시퀀스, 45개의 인덱스가 있습니다

 

그리고 vacuum 이나 analyze를 하게 되면 인덱스가 다 깨져버립니다 -_-;

reindex db, reindex table, reindex index 를 해도 절대 복구되지 않고 테이블을 다시 생성해서 데이터를 집어넣기 전에는 절대 다시 인덱스가 되지 않는 희한한 상황입니다 -_-;

혹시 이것과 관련이..?

저한테 뭔가 문제가 있는걸까요? =_=;

제 상황이라면 모든 테이블이 한개에서 2~3개의 컬럼들이 연계되어 있고 배열 컬럼을 꽤 많이 사용하고 있습니다.

 

인제 pgsql이라면 사용자 정도의 수준에 이르렀다고 생각했는데 막 막 합니다 ㅠ_ㅠ;

풀텍스트 인덱스에서 인덱스가 깨지는 걸로 흘러와 버렸네요 =_=

어흑~ 답변을 ( -_);

그럼~ 좋은 주말되십쇼~

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

앗.. 죄송합니다 =_=;

오늘 오전에 7.2.3으로 업그레이드 했는데..

되버리는군요 =_= 오오오~

 

근데.. vacuum 이나 analyze 후의 인덱스 깨짐은 여전합니다 ㅠ_ㅠ 이건 방법이 없는거 같네요 -_-;

신기배(nonun)님이 2002-10-20 08:21에 작성한 댓글입니다.

REINDEX 명령어로 인덱스를 다시 생성해 보시기 바랍니다.

정재익(advance)님이 2002-10-20 11:07에 작성한 댓글입니다.

그래도 안됩니다 =_=;

reindex db, reindex table, reindex index 로 다 해봐도 안됩니다 ㅠ_ㅠ;

신기배(nonun)님이 2002-10-20 11:54에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
4399[질문] 컴파일 할때 이러한 예기는 왜 나는지여. [1]
이근호
2002-10-22
740
4397아래 질문에 reply가 안되어서 새글로 씁니다.
이근호
2002-10-22
842
4398┕>Re: 아래 질문에 reply가 안되어서 새글로 씁니다.
이근호
2002-10-22 17:00:42
703
4395insert/update/delete의 이상처리리턴치에 대해서. 갈카주이소옹~ [1]
질문걸
2002-10-22
818
4394김상기님의 풀텍스트 인덱스에 관한 질문입니다 ^^; [3]
신기배
2002-10-19
1391
4393JDBC와 인포믹스 연결에 관한 질문입니다. [1]
정혜경
2002-10-18
972
4392[급] 시작이 반인데.... [3]
cosmos
2002-10-18
895
4391to_number() 같은 함수는 없나요? [1]
서영철
2002-10-16
2509
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다