Mysql 쿼리가 index를 타지 않는 문제 문의드립니다. 0 0 1,185

by 제이제이 [SQL Query] Mysql index [2019.04.03 11:17:05]


안녕하세요.

정말 이상한 경우를 겪고 있어서 문의듸립니다.

 

우선 환경설명을 먼저 드리겠습니다.

-----------------------------------------------------------------------------------

mariadb 10 버전대를 쓰고 있습니다.

staging 10.1.26

운영은 10.1.29

일단 현재의 DB  설치등은 저의 전임자들이 설치했습니다.

둘다 Galera 클러스터를 쓰고 있습니다.

환경변수 등은 크게 차이가 없는것 같습니다.(운영쪽이 좀더 캐시등은 더 잡혀 있습니다.)

다만 staging은 aws 에 있고 운영DB 는 여건상 IDC에 존재합니다.

-----------------------------------------------------------------------------------

이상이 환경입니다.

 

이제부터 문제인데요.

staging은 거의 모든 쿼리가 1초이내 그리고 필요한 index를 알아서 잘 타고 있습니다.

참... optimizer 설정도 같습니다.

그런데 운영쪽은 거의 모든 쿼리가 풀스캔을 탑니다.

플랜을 떠보면 둘이 확연하게 다릅니다.

 

그나마 운영이라도 아직 데이터가 그다지 많지 않아서인지 단일 테이블 조회는 그럭저럭 돌아가지만 살짝만 조건이 많은 join이 포함된 쿼리는 함흥차사 입니다.

제가 최근에 인수인계를 받아서 잘 모르고 있다가 개발건들을 처리하려다 보니 이런 상황을 맞고 있는데요..

 

운영DB의 경우 강제로 force index 를 주면 타기는 하지만 ... where 조건에 인덱스외의 컬럼이 들어오면 다시 풀스캔을 탑니다.

도대체 뭐가 문제인지 모르게습니다.

 

고수님의 고언을 부탁드립니다.

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입