g5_member 테이블 인덱스 질문
본문
g5_member 테이블 mb_id 필드에 인덱스를 지정하고 다른 데이터베이스 테이블과 left join을 했습니다.
속도가 느려서 EXPLAIN로 결과를 확인해보았는데, g5_member mb_id 필드에 인덱스를 지정했음에도
possible_keys과 key가 NULL로 나오고 풀스캔이 발생합니다 ㅜㅜ
테이블 최적화도 해봤고, 데이터도 지웠다가 다시 해보았는데도 안되네요..
해결 방법이 있을까요?
답변 5
- 조인에 사용되는 각 테이블 구조
- 조인에 사용되는 각 테이블의 대략적인 row 수
- 조인 전체 쿼리문
등의 정보가 어느정도 제공되어야 문제해결에 도움이 되지 않을까 싶습니다.
ANALYZE TABLE g5_member; 업데이트 한번해보세요
Or를 일단 빼세요.
friends_table 의 send_mb_id, recv_mb_id 인덱스 지정
pk 쪽에다 index를 지정해보시기 바랍니다.
left join은 어떤 이유에서 사용했는지는 잘 모르겠는데요. 만일 left join을 사용해서 관련된 값을가지고 오게 하실려면 차라리 function올 만들어서 해당 필드를 호출해서 select해보시면 속도가 보다 개선될겁니다.
데이터 양이 많은경우 join을 자주 쓰번 perfermance가 떨어지기 때문입니다.
답변을 작성하시기 전에 로그인 해주세요.