*제목 검색(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의 검색은 지양해야 한다고 판단 됩니다.