해결된 질문
작성
·
572
0
안녕하세요
주니어 개발자 길라잡이가 되주셔서 감사합니다.
fulltext index에 대해서 질문이 있습니다.
임계점이 올경우 튜닝으로도 해결할 수 없는 문제라고 말씀해주셨는데요
경험담이라고 해주셨는데
그 경험담을 듣고 싶어서 질문을 남겨봅니다.
공식 문서에서 찾아보니까
https://dev.mysql.com/doc/refman/8.0/en/innodb-fulltext-index.html#innodb-fulltext-index-deletion
동시 경합이 발생할 수 있다고 작성이 되어있는데
이 문제로 발생한건가요 ?
아니면 다른 인덱스와 다르게 인덱스 용량 때문에 발생한 문제이신건가요 ?
FULLTEXT INDEX의 한계 검색을 해도 다 좋은점만 나오더라구요..
답변 2
2
안녕하세요. 근래에 책을 집필할 기회가 생겨 그쪽에 힘을 실어주다 보니 다른 일에 신경 쓰지 못했습니다. 답변이 늦어 죄송합니다. 다만 해당 강의는 공식적으로 질의응답을 제공하지 않는 강의였다는 점을 이유로 늦어진 부분에 대해 양해 부탁드립니다.
관련해서는 아래 참고 글을 확인하면 좋을 것 같습니다. (참고: https://data-sleek.com/blog/the-limits-of-mysql-full-text-search-and-the-quest-for-alternative-solutions/)
해당 글을 요약하면 fulltext index에 boolean 조건으로 단일 검색은 수행이 빠르지만, 복합 조건으로 쿼리를 만들 경우 속도가 떨어진다는 내용입니다. 더불어 데이터 크기가 많아질 경우 성능은 계속해서 떨어지는 구조였다는 이야기입니다. 그리고 “MySQL은 대용량, 엔터프라이즈 수준의 데이터베이스를 효율적으로 처리하도록 설계되어 있지 않다.”라는 이야기입니다.
제가 했던 경험도 해당 사례와 상당히 유사합니다. 초기에는 빠르게 검색이 됐지만, 데이터가 많아질수록 성능이 계속 느려졌습니다. 1초 정도 걸리던 쿼리가 90초까지 늘어났습니다. 덧으로 제가 겪은 문제에선 인덱스 테이블이 4GB 정도 도달하니 문제가 발생했던 것으로 기억합니다. (오래된 기억이라 정확하진 않습니다.)
DBA 입장에선 관리상 불편함이 많은 관계로 생성을 지양한다고 합니다.
답변이 도움 됐길 바랍니다.
0
안녕하세요, 인프런 AI 인턴이에요. FULLTEXT INDEX에 대한 질문이네요.
FULLTEXT INDEX는 텍스트 기반의 검색에 최적화된 인덱스로, 빠른 텍스트 검색을 가능하게 해줍니다. 하지만 몇 가지 한계점도 있습니다.
확인하신 공식 문서에서 언급된 동시 경합이 발생할 수 있다는 부분은 FULLTEXT INDEX를 사용할 때 데이터 변경 작업이 동시에 일어날 경우 발생할 수 있는 상황을 의미합니다. 데이터의 새로운 추가나 삭제가 동시에 이루어진다면, 인덱스 갱신 작업에 경합이 발생하여 성능이 저하될 수 있습니다.
또한 FULLTEXT INDEX는 일반적으로 다른 인덱스보다 용량을 많이 차지한다고 할 수 있습니다. 이는 텍스트 데이터를 효과적으로 인덱싱하기 위해 특별한 알고리즘을 사용하기 때문입니다.
FULLTEXT INDEX의 장점만 나와서 단점이 보이지 않는다고 하셨는데, FULLTEXT INDEX를 사용할 때의 장단점은 사용자의 상황과 목적에 따라 다를 수 있습니다. 그러므로 신중한 사용이 필요합니다.
추가로 질문이 있으시면 언제든지 물어보세요!