mysql 5.7버전
fr_hit 테이블
6개의 열 : id(int), hitter(tinitext), category(tinitext), target(tinitext), tag(tinitext), date(timestamp)
primary key = id
fulltext index = hitter, category, target, tag
카테고리, 타겟, 태그는 enum 같은 정해진 몇개의 텍스트
hitter는 불특정 텍스트
약 60만개의 행
=======================
select *
from fr_hit
where
hitter=2 and
category="community" and
tag="inbox" and
target=744
======= 약 0.3초 =======
select fr_test.*, fr_hit.id
from fr_test
left join fr_hit ON
fr_hit.hitter='aa' and
fr_hit.category='community' and
fr_hit.tag='inbox' and
fr_hit.target=fr_test.id
limit 1;
========= 약 50초 ==========
fr_test테이블 리스트를 10개 뽑아온다고 하면 몇분이 걸리는 상황입니다.
지금은 fr_test를 그냥 select하고 fr_hit테이블을 셀렉트 하는 상황이고
지금 그 마저도 한개당 0.3초 정도니 10개를 한다고 하면 3초인 상황이라 느리다는 판단입니다.
찾다가 fulltext라는 인덱싱을 해봤는데 이건 match와 같은걸로 해야한다고 하고...
음.. 몇일정도 찾아보고 이것 저것해봤는데 답이 안나오는 상황입니다..
제가 해본 테스트 상황으로는 fr_hit.hitter 때문에 느리다는 답이 나왔는데 어떻게 개선을 해야할지...
어떻게 성능향상을 할 수 잇을까요...그리고 join이 왜이렇게 느린걸까요...
답변 부탁드립니다... 감사합니다..