오류관리

Memory capacity of 8388608 bytes for 'range_optimizer_max_mem_size' exceeded. Range optimization was not done for this query.

k9e4h 2021. 7. 1. 14:55

Memory capacity of 8388608 bytes for 'range_optimizer_max_mem_size' exceeded. Range optimization was not done for this query.

 

사내 DBA 분이 튜닝해주신 쿼리가 어떤 때에는 속도가 엄청 느렸습니다.

Mybatis에서 동적으로 In 절을 만들고 있었는데 In 절에 데이터가 많아지는 경우의 문제였습니다.

 

range_optimizer_max_mem_size 의 값을 확인인하여 값을 변경합니다.

range_optimizer_max_mem_size=0 으로 설정하거나 늘릴것을 검토한다. dynamic parameter이며 0으로 설정 시 unlimit을 의미

 

> SHOW VARIABLES LIKE '%mem%';

> set session range_optimizer_max_mem_size=nnn;

 

 

 

 

https://jojoldu.tistory.com/565

 

MySQL IN절을 통한 성능 개선 방법

잘 사용되진 않는 범위 조건 중에 IN 이 있습니다. 일반적으로 BETWEEN , LIKE , <> 에 비해서는 하나씩 모든 Key를 입력해야 되기 때문에 애플리케이션에서 작업양이 추가되어 선호되진 않는데요. 이 I

jojoldu.tistory.com

https://pjh3749.tistory.com/288

 

MySQL eq_range_index_dive_limit 를 활용한 쿼리 수행시간 개선 및 실무에서 발생할 수 있는 연관된 문제

배경 의도치 않게 쿼리 수행시간이 증가하거나 이슈가 발생하는 부분 중 하나인 쉽게 발생하지만 원인파악이 쉽지 않은 부분에 대한 내용입니다. IN절로 인한 쿼리 수행시간이 증가하는 것에 따

pjh3749.tistory.com

 

반응형