검색은 빨라야 한다, 그런데 쓰기도 빨라야 한다면? (feat. PostgreSQL GiST)GIN이 모든 답은 아니다. pg_trgm에서 GiST를 선택해야 하는 순간들이전 글에서는 MySQL에서 LIKE '%keyword%'가 왜 느린지, 그리고 PostgreSQL에서는 pg_trgm + GIN 조합으로 이 문제를 어떻게 더 깔끔하게 해결할 수 있는지 정리했다.흐름을 다시 요약하면 이렇다.1편: MySQL B+Tree index는 leading wildcard가 붙은 LIKE '%keyword%' 검색에서 seek point를 잡지 못한다.2편: PostgreSQL은 pg_trgm + GIN으로 LIKE 문법을 유지하면서도 substring search를 인덱스로 가속할 수 있다.CORE이번 글의 핵..
postgresql
제 검색 속도는 안녕합니다 (feat. PostgreSQL GIN + pg_trgm)MySQL FULLTEXT와는 무엇이 다른가이전 글에서 MySQL의 LIKE '%WildCard%' 문제와, FULLTEXT index + ngram parser로 우회하는 방법을 다뤘다.2026.05.13 - [DB/MySQL] - 당신의 검색 속도는 안녕하십니까?(feat. MySQL Index)핵심은 이거였다. B+Tree index는 leading character 기준으로 정렬된 자료구조이기 때문에, leading wildcard가 붙은 substring search는 sargable하지 않다. 그래서 인덱스가 있어도 full index scan으로 떨어진다.MySQL에서는 FULLTEXT index에 ngram..