실행계획 확인
1. Explain 실행계획 확인 방법
EXPLAIN
SELECT * FROM 테이블
2. 컬럼별 내용정리
MySQL Query 추적
MySQL에 root로 로그인합니다.
-general_log 확인
일반적으로 모든 쿼리에대한 로그를 남기기 위해 general_log Value 값을 변경해 주어야한다.
general log란 MySQL에서 실행되는 전체 쿼리에 대한 로그이며, general log를 활성화하면 MySQL이 쿼리 요청을 받을 때 즉시 general log에 기록
SHOW VARIABLES LIKE '%general%';
-general_log 상태값 변경
상태값을 ON으로 변경해준다.(mysql 재시작 필요 없음)
general_log_file의 기본 경로에서 실시간으로 입력되는 쿼리 로그를 확인할 수 있음
SET GLOBAL general_log = ON;
-로그확인
variables의 상태값을 변경해주는 시점부터 발생하는 쿼리에 대해 general_log_file의 경로에 로그를 남기기 시작한다.
위 방법으로 변경해주면 MySQL을 재실행 할 필요없이 바로 로그를 남긴다.
MySQL 커넥션을 끊고 해당 경로의 파일을 확인한다.
vi /home/mysql_data/localhost.log
경로를 바꾸려면 다음과 같이 입력합니다. (경로를 변경하게 되면 mysql을 재시작해야 합니다.)
[mysqld]에 아래의 2줄을 삽입합니다.
0은 비활성, 1은 활성을 의미합니다.
# vi /etc/my.cnf [mysqld]general_log_file = /var/log/general.log ⇐ 변경할 경로 입력
general_log = 1
Variables 자동 설정
MySQL 서버를 재실행하면 general_log 상태값은 다시 OFF로 바뀐다.
재실행해도 로그가 남도록 my.cnf파일의 설정 값을 변경해준다.
# /etc/my.cnf 파일 추가
general_log = ON
general_log_file = /home/mysql_data/log/history.log
mkdir /home/mysql_data/log
touch /home/mysql_data/log/history.log
chown -R mysql:mysql /home/mysql_data/log
재실행 후 이전과 다르게 자동으로 general_log 상태값이 ON으로 되어 있고 로그파일 경로도 변경될 것이다.
출처 : myjamong.tistory.com/59, blog.plura.io/?p=4493
모니터링 쿼리
잘 정리된 블로그가 있어 링크로 대신합니다.
nomadlee.com/mysql-monitoring-query/#Index
'SQL & DB > SQL 튜닝' 카테고리의 다른 글
[SQL 튜닝] SQL 옵티마이저 (0) | 2021.06.26 |
---|---|
[SQL 튜닝] Lock과 트랜잭션 동시성 제어 (0) | 2021.06.19 |
[SQL 튜닝] 파티션을 활용한 DML튜닝 (0) | 2021.06.07 |
[SQL 튜닝] 인덱스 튜닝(1) - 테이블 액세스 최소화 및 부분범위 처리 활용 (0) | 2021.05.01 |
[SQL 튜닝] 인덱스 기본 (0) | 2021.04.22 |