*제목 검색(pd_name에 index 걸려 있음)
1. LIKE 유형1

SELECT * FROM rb_product
WHERE pd_name LIKE '%테스트%';


index 못탑니다.

2. LIKE 유형2(우 %)

SELECT * FROM rb_product
WHERE pd_name LIKE '테스트%';

 

index 탑니다.

3. LIKE 유형32(좌 %)

SELECT * FROM rb_product
WHERE pd_name LIKE '%테스트';

index 탑니다.

4. 커버링 인덱스

SELECT A.*
FROM (
SELECT pd_idx, pd_name
FROM rb_product
WHERE pd_name LIKE '%테스트%'
#LIMIT 100000, 100
) AS P
INNER JOIN rb_product AS A ON A.pd_idx=P.pd_idx

index 탑니다.

*기타 제목 검색

SELECT * FROM rb_product
WHERE INSTR(LOWER(pd_name),LOWER('테스트'))>0;


index 못탑니다.

*컨텐츠 TEXT data type
-- 데이터 길이 때문에 index key 생성 불가능합니다.

SELECT A.*
FROM (
SELECT pd_idx, pd_contents
FROM rb_product
WHERE pd_contents LIKE '%테스트%'
#LIMIT 100000, 100
) AS P
INNER JOIN rb_product AS A ON A.pd_idx=P.pd_idx

pd_contents 인덱스가 걸리지 않기 때문에 인덱스 못탑니다.

============================
*FULL TEXT index
cafe24 웹호스팅 mysql innodb_ft_min_token_size
show variables like 'innodb_ft_min%'
기본 3글자로 세팅이 되어 있는 상태이고, 웹호스팅이기 때문에 변경이 안됩니다.

cafe24 웹호스팅 사용하는 이상은 레코드의 양 많을 때는 TEXT  data type에 인덱스를 걸수 없기 때문에 TEXT data type의 검색은 지양해야 한다고 판단 됩니다.

 

+ Recent posts