오퍼링 > 소프트웨어 테크놀로지 서비스 > 오픈소스 SW > DBMS > 자료실
[FAQ/MariaDB] long_query_time 시스템 변수 값을 변경 후 반영이 되지 않습니다
2021.02.19
Question
운영쪽에 slow log 가 너무 많이 쌓여서 long_query_time을 1에서 3으로 변경하였습니다.
하지만 변경 후에도 slow log의 query_time을 보면 3초 이하의 쿼리들이 지속적으로 기록되고 있습니다.
변경한 long_query_time이 서버에 반영되게 하려면 어떻게 해야 하나요?
Answer
long_query_time 시간을 변경하였음에도 불구하고 3초 이하의 slow query들이 로그에 기록된 것은 기존의 세션들 때문인 것으로 보입니다.
말씀해주신 것처럼 set global long_query_time=3; 으로 설정하였다면 아래의 테스트 케이스처럼 변경 이후 새롭게 생성된 세션들만 변경된 값이 반영되기 때문입니다.
[세션 #1]
![3초 이하의 slow query들이 로그에 기록된 것은 기존의 세션들 때문인 것_세션1](/wp-content/uploads/2021/02/mariadb-faq-long_query_time-variable-not-working-001.png)
[세션 #2]
![3초 이하의 slow query들이 로그에 기록된 것은 기존의 세션들 때문인 것_세션2](/wp-content/uploads/2021/02/mariadb-faq-long_query_time-variable-not-working-002.png)
global 변수를 변경하더라도 session 변수는 여전히 유지됨을 볼 수 있습니다.
[세션 #1]
![global 변수를 변경하더라도 session 변수는 여전히 유지됨을 볼 수 있습니다._세션1](/wp-content/uploads/2021/02/mariadb-faq-long_query_time-variable-not-working-003.png)
마찬가지로 기존의 다른 세션 역시 session 변수는 여전히 유지됨을 볼 수 있습니다.
[세션 #3 - 신규]
![새롭게 생성된 세션에서는 위와 같이 session 변수 값이 global 변수의 값과 일치](/wp-content/uploads/2021/02/mariadb-faq-long_query_time-variable-not-working-004.png)
새롭게 생성된 세션에서는 위와 같이 session 변수 값이 global 변수의 값과 일치함을 확인할 수 있습니다.
결국 새롭게 생성되는 세션들에 대해서는 3초로 정상적으로 설정되었을 것으로 판단되며 새롭게 접속을 하여 아래의 쿼리 중 3.5초 간 수행되는 쿼리만 로그에 남는 지 확인해 보시면 될 것 같습니다.
![log_slow_rate_limit 변수를 사용하시면 로그되는 중복 쿼리의 양을 비율로 줄일 수 있습니다.](/wp-content/uploads/2021/02/mariadb-faq-long_query_time-variable-not-working-005.png)
참고로 log_slow_rate_limit 변수를 사용하시면 로그되는 중복 쿼리의 양을 비율로 줄일 수 있습니다.
현재는 log_slow_rate_limit=1로 설정되어 모든 쿼리를 기록하고 있습니다.