라이브러리
[MYSQL_CONFIG] --log-slow-admin-statements - 관리 명령어의 슬로우 쿼리 로그 기록 여부 설정
MySQL의 Slow Query Log
MySQL은 성능 최적화를 위해 Slow Query Log를 제공합니다. Slow Query Log는 MySQL이 처리하는 쿼리 중 실행 시간이一定 이상인 쿼리를 기록하는 로그입니다. 이 로그를 통해 쿼리의 성능을 분석하고 최적화할 수 있습니다.
--log-slow-admin-statements 옵션
`--log-slow-admin-statements` 옵션은 MySQL이 처리하는 쿼리 중 ADMIN STATEMENT(관리자 쿼리)만 Slow Query Log에 기록하는 옵션입니다. ADMIN STATEMENT은 다음과 같은 쿼리를 포함합니다.
* `FLUSH TABLES`
* `FLUSH TABLE`
* `FLUSH HOST`
* `FLUSH LOGS`
* `FLUSH PRIVILEGES`
* `ANALYZE TABLE`
* `CHECK TABLE`
* `OPTIMIZE TABLE`
* `REPAIR TABLE`
* `CREATE TABLE`
* `DROP TABLE`
* `ALTER TABLE`
* `TRUNCATE TABLE`
이 옵션을 사용하면 ADMIN STATEMENT의 성능을 분석하고 최적화할 수 있습니다.
예제
다음 예제는 `--log-slow-admin-statements` 옵션을 사용하여 Slow Query Log를 생성하는 방법을 보여줍니다.
#hostingforum.kr
sql
# my.cnf 파일에 다음 옵션 추가
[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
log_slow_admin_statements = 1
# MySQL 서버 재시작
sudo service mysql restart
# ADMIN STATEMENT을 실행
mysql> FLUSH TABLES;
Query OK, 0 rows affected (0.01 sec)
# Slow Query Log 확인
tail -f /var/log/mysql/slow.log
Slow Query Log에 ADMIN STATEMENT이 기록된 것을 확인할 수 있습니다.
#hostingforum.kr
sql
# Slow Query Log 내용
# Time: 2023-02-18T14:30:00.000000Z
# User@Host: root[root] @ localhost []
# Query_time: 0.000000 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 0
# Use_thread_id: 1 Schema:
# Table:
# Query_length: 0 bytes
# Query: FLUSH TABLES
이 예제에서는 `FLUSH TABLES` 쿼리가 Slow Query Log에 기록된 것을 확인할 수 있습니다.
결론
`--log-slow-admin-statements` 옵션은 MySQL이 처리하는 쿼리 중 ADMIN STATEMENT만 Slow Query Log에 기록하는 옵션입니다. 이 옵션을 사용하면 ADMIN STATEMENT의 성능을 분석하고 최적화할 수 있습니다. 예제를 통해 ADMIN STATEMENT이 Slow Query Log에 기록되는 방법을 보여주었습니다.
댓글목록
등록된 댓글이 없습니다.