게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
mysql 성능이 너무 안나와서.. 질문좀 드리겠습니다!!
게시물ID : programmer_21787짧은주소 복사하기
작성자 : 도레미파솔라
추천 : 1
조회수 : 591회
댓글수 : 13개
등록시간 : 2017/11/30 15:35:50
옵션
  • 베스트금지
  • 베오베금지
  • 본인삭제금지
  • 외부펌금지
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이 왜이렇게 느린걸까요...
답변 부탁드립니다... 감사합니다..



전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호