-
[MariaDB] Slow query 수집Database 2023. 1. 27. 10:32
* 개요
: MariaDB에서 실행 되는 쿼리에 대해 특정 임계시간 이상 실행 된 쿼리에 대해 수집을 할 수 있다. 이는 튜닝 대상 쿼리를 탐지 하기 위함이다.
: 수집은 테이블에 적재하는 방식과 파일로 떨어뜨리는 방식이 있으나, 테이블에 적재하는 경우 쿼리문이 길어지면 로그 테이블을 조회하는 시간(네트워킹시간)이 너무너무너무너무 오래 걸리므로, 파일로 관리하는것이 훨씬 낫다!!
* 글로벌 config 확인
: 현재 설정된 상태 확인
show variables where Variable_name in ('slow_query_log','long_query_time','log_output','slow_query_log_file');
설정 값 확인 * 설정 변경
: 쿼리를 통한 글로벌 변수 설정 시 재기동시 반영이 안되므로, my.cnf에 설정 해 준다.
# 컨피그 파일 수정 vi /etc/my.cnf [mysqld] slow_query_log = 1 slow_query_log_file = /var/log/mysql-slow.log long_query_time = 10 log_output = 'FILE' ## 이 부분을 TABLE로 바꿔주면 테이블에 적재 된다.
* 테스트
// 강제로 임계치 초과 쿼리 발생 (12초) select sleep(12); // 테이블에 적재 한 경우 수집된 쿼리 확인 select * from mysql.slow_log;
* 슬로우 로그 파일 관리
#!/bin/bash rm -rf /TestService/mariadb/backup_storage/slow_log_*.log target='TestServicebak_'$(date +%Y%m%d%H%M%S) ## 로그파일 백업 cp /TestService/mariadb/log/mysql-slow.log '/TestService/mariadb/backup_storage/slow_log_'$target'.log' ## 로그파일 비우기 cat /dev/null > /TestService/mariadb/log/mysql-slow.log
'Database' 카테고리의 다른 글
[MariaDB] MariaDB 레플리케이션 모니터링 쉘프로그램 (on Docker) (0) 2023.03.08 [MSSQL] 백업 및 로그 파일 축소 (0) 2023.02.28 [MariaDB] MariaDB sqldump로 배치(Cron) 만들기 (0) 2023.01.26 [MariaDB] Proxy SQL 셋팅 (on Docker) (0) 2023.01.12 [MariaDB] Replication 구성 (on Docker) (0) 2023.01.11