안녕하세요.
정말 이상한 경우를 겪고 있어서 문의듸립니다.
우선 환경설명을 먼저 드리겠습니다.
-----------------------------------------------------------------------------------
ariadb 10 버전대를 쓰고 있습니다.
staging 10.1.26
운영은 10.1.29
일단 현재의 DB 설치등은 저의 전임자들이 설치했습니다.
staging 환경과 운영환경이 있습니다.
둘다 Galera 클러스터를 쓰고 있습니다.
환경변수 등은 크게 차이가 없는것 같습니다.(운영쪽이 좀더 캐시등은 더 잡혀 있습니다.)
다만 staging은 aws 에 있고 운영DB 는 여건상 IDC에 존재합니다.
-----------------------------------------------------------------------------------
이상이 환경입니다.
이제부터 문제인데요.
staging은 거의 모든 쿼리가 1초이내 그리고 필요한 index를 알아서 잘 타고 있습니다.
참... optimizer 설정도 같습니다.
그런데 운영쪽은 거의 모든 쿼리가 풀스캔을 탑니다.
플랜을 떠보면 둘이 확연하게 다릅니다.
그나마 운영이라도 아직 데이터가 그다지 많지 않아서인지 단일 테이블 조회는 그럭저럭 돌아가지만 조금 복잡한 join이 포함된 쿼리는 함흥차사 입니다.
제가 최근에 인수인계를 받아서 잘 모르고 있다가 개발건들을 처리하려다 보니 이런 상황을 맞고 있는데요..
운영DB의 경우 강제로 force index 를 주면 타기는 하지만 ... where 조건에 인덱스외의 컬럼이 들어오면 다시 풀스캔을 탑니다.
도대체 뭐가 문제인지 모르게습니다.
고수님의 고언을 부탁드립니다.
|