SQL

SQL

LIKE는 성능이 떨어진다 — FULLTEXT 인덱스를 활용하라

페이지 정보

profile_image
영삼이
0건 380회 25-03-28 15:27

본문

LIKE는 성능이 떨어진다 — FULLTEXT 인덱스를 활용하라

LIKE 쿼리가 느려진다면 텍스트 검색을 위한 인덱스를 고려하자


LIKE 사용 시 성능 저하

SELECT * FROM products WHERE name LIKE '%laptop%';
  • %로 시작하거나 끝이 붙은 LIKE전체 텍스트를 스캔해야 하므로

  • 큰 테이블에서 실행하면 성능이 급격히 떨어짐

  • LIKE인덱스를 사용하지 않음 (특히 %가 앞에 있을 경우)


FULLTEXT 인덱스를 사용한 성능 개선

CREATE FULLTEXT INDEX idx_name ON products(name);
SELECT * FROM products WHERE MATCH(name) AGAINST('laptop' IN NATURAL LANGUAGE MODE);
  • FULLTEXT 인덱스를 사용하면 빠르고 효율적인 텍스트 검색이 가능

  • 검색어를 포함한 단어나 문장이 포함된 행을 빠르게 찾을 수 있음

  • 큰 데이터셋에서 LIKE보다 훨씬 빠른 성능 제공


MATCHAGAINST 활용

  • MATCH문서 기반 검색에 사용되며,

  • AGAINST로 검색할 때 가장 적합한 텍스트 검색을 자동으로 처리함.


주의점

  • FULLTEXT 인덱스는 MySQL과 MariaDB에서만 지원

  • LIKE``는 검색의 범위가 넓어지면 성능이 급격히 나빠지므로,** **텍스트 데이터의 검색은 FULLTEXT` 인덱스로 대체하는 게 더 효과적이다.


✔️ LIKE성능 저하의 원인이 될 수 있다.
FULLTEXT 인덱스를 활용하면 큰 데이터에서도 빠르고 효율적인 검색이 가능하다.

댓글목록

등록된 댓글이 없습니다.