본문 바로가기

T아카데미/데이터베이스

18강. SQL Advanced 5

[ 목차 ]

1. LIKE 검색의 단점

2. 전문검색(Full Text Search)

3. Full Text Search 인덱스 생성

4. 전문검색 조건

5. 자연어 검색

6. 불린 검색

7. Bulk Insert

8. 인덱스 작업 정지/재설정

9. 기존의 insert문에 values를 여러 번 나열한 방식

10. 파일로 덤프하여 CSV파일을 사용한 방식

11. bulk insert의 주의사항

 

1. LIKE 검색의 단점

1) 여러 개의 검색필터를 동시에 매칭시키는 방식

2) 여러 개의 조건문을 AND/OR 시킬 경우 심각한 성능 저하 발생

3) 위 경우, 동일한 결과를 보이지만 DB서버에 부담을 주지 않는 Full Text Search를 사용

 

2. 전문검색(Full Text Search)

1) 기본적으로 컬럼 내용 전체를 단순 문자열로 생각하고 검색하는 방식

2) 문자편집기의 편집 찾기/바꾸기 메뉴의 동작방식과 유사

3) 자연어 검색, 불린 검색, 쿼리 확장 검색 방식이 존재

 

3. Full Text Search 인덱스 생성

alter table 테이블명 add fulltext(칼럼명);

1) MySISAM 스토리지 엔진만 지원했으나 현재는 둘 다 사용 가능

 

4. 전문검색 조건

1) my.ini 파일에서 ft_min_word_len =2 로 수정

2) 2자 이상의 단어에 대해서 적용하도록 제한(기본값 4)

3) 기존에 full text index가 있었으면 인덱스 재구성이 필요

repair table 테이블명 quick;

5. 자연어 검색

where match(칼럼명) against('검색어/검색문장');

1) 검색의 정확도 확인 : as score

2) 결과는 검색의 정확도에 대한 내림차순 정렬

 

6. 불린 검색

where match(칼럼명)
      against("단어*" -제외단어 in boolean mode);

1) 검색의 정확도에 따른 정렬이 안되고 연산자를 사용한 구문 검색 가능

2) 필수단어(+), 예외단어(-), 부분단어(*)를 사용

 

7. Bulk Insert

1) insert의 경우 레코드를 추가한 후 내부적으로 인덱스 재구성 작업이 필요

2) 여러 개의 레코드를 넣어야 하는 경우 하나의 레코드를 입력할 때 마다 위 작업이 연속적으로 발생

3) bulk insert는 위 문제를 해결

 

8. 인덱스 작업 정지/재설정

alter table 테이블명 disable keys;

alter table 테이블명 enalbe keys;

 

9. 기존의 insert문에 values를 여러 번 나열한 방식

insert into 테이블명 values(...)valuess(...);

 

10. 파일로 덤프하여 CSV파일을 사용한 방식

load data infile 'c:\\path\file_name'
into table 테이블명 fields terminated by '\t' enclosed by "escaped by '\\' lines starting by "terminated by '\n';

11. bulk insert의 주의사항

1) 보안 문제로 특정 디렉토리에만 가능하도록 설정해야 함

2) secure - file - priv = path 옵션

3) my.ini 설정 : [mysqld] secure-file-priv = c:\\mysql\data

'T아카데미 > 데이터베이스' 카테고리의 다른 글

20강. SQL Advanced 7  (0) 2020.03.27
19강. SQL Advanced 6  (0) 2020.03.27
17강. SQL Advanced 4  (0) 2020.03.25
16강. SQL Advanced 3  (0) 2020.03.25
88  (0) 2020.03.25