[MySQL]4천만 데이터 테이블 조회 지연발생 0 2 1,534

by 레이진 [MySQL] SELECT 지연 MySQL 대량 [2020.05.29 18:33:54]


안녕하세요.

테이블 조회시에 where문 조건에 따라 지연현상이 발생하여 질문드립니다!

 

한 테이블에 PK 4개, PK들을 포함하는 인덱스 1개, 데이터량 4천만 이상을 가지고 있습니다.

테이블에 컬럼은 23개 입니다. ex) a1, a2, a3, a4, a5, ~ a23 

PK = a1(varchar80),a2(datetime),a3(varchar20),a4(int5)

 

조건은 아래와 같고, a1과 a2기간을 변경하며 조회쿼리를 날립니다.

a1 ='name' and a2 between '2020-01-01' and '2020-01-30'

 

문제는 a1이 다른 이름으로 바뀐다면, 쿼리처리 속도가 분단위가 넘어가도록 지연이 이루어지는 경우가 발생합니다.

조회되는 데이터량은 5천건이며, 초기 진입시에만 느려지는 현상이 발생하고, 이후에는 속도가 정상으로 돌아옵니다.

 

 

혹시 비슷한 상황을 겪으신분이나 해결방법을 아시는 분이 계시다면 도움 부탁드립니다.

 

감사합니다!

 

by pajama [2020.05.31 17:28:42]

조건이 바뀌면 처음 쿼리 실행이 오래 걸리는 문제이신가요?

버퍼풀에 없는 데이터를 디스크에서 메모리로 로드하는 과정이 있어서 오래걸리는 듯 한데요.

버퍼풀 크기를 늘리는 게 도움이 될 수도 있지만.. 조건이 다양하다면 한계가 있을지도 모르겠네요.


by 레이진 [2020.06.03 13:35:38]

답변감사합니다.
알려주신 방법으로 적용해 봤는데 처리 속도가 늦어지고 타임아웃이 걸리는 문제가 발생하네요 ㅠ

아무래도 버퍼풀만 늘려서 될 문제가 아닐 것 같습니다..

버퍼풀만 늘렸더니.. flush 처리하는데 시간이 오래 걸려 멈춰있는듯한 현상이 일어나는 것 같습니다..

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