DB/DB 공통 관리

MySQL Slow Query 설정

서버엔지니어 2023. 3. 12.
728x90

MySQL 설정파일 Slow Query 설정

 

slow query log 확인하기

mysql> show variables like 'slow_query_%';

서버밖에서 설정하기

MySQL my.cnf 설정

vi /etc/my.cnf
========================================================================
[mysqld]
#slow_query_setting
slow_query_log=1    //////1=on 0=off
log_slow_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 3

슬로우 쿼리가 3초가 초과하는 쿼리에 대한 로그를 남기는 설정입니다.

log_slow_querise : 저장될 로그경로
long_query_time : 쿼리타임이 지정한 시간을 초과하는 부분만 저장

MySQL 재시작
/etc/init.d/mysqld restart

cd /var/log
mkdir mysql
chown mysql:mysql /var/log/mysql

mysql -u root -p
후 
select sleep(5);

MySQL Slow Query 분석
show variables like 'long_query_%';
========================================================================

서버안에서 slow_query설정하기 

mysql -u root -p

해당 값(초) 이상의 로그 기록
mysql> set global long_query_time = 3;

슬로우쿼리 활성 여부 (0 = 비활성 / 1 = 활성)
mysql> set global slow_query_log = 1;


슬로우쿼리 로그파일 경로
mysql> set global slow_query_log_file="/var/log/mysql/slow_queries.log";

index를 사용하지 않는 쿼리 기록 여부
mysql> set global log_queries_not_using_indexes = on;

cat /var/logl/mysql/slow_query.log

========================================================================
Slow Query(슬로우 쿼리) 로그파일
User@Host: DB_유저[DB_유저] @ server_hostname [서버IP]
Query_time: 0.000599  Lock_time: 0.000163 Rows_sent: 3  Rows_examined: 86
SET timestamp=1489118717;
select count(*)

Query_time : 쿼리 처리시간V
Lock_time : lock이 걸린 횟수
Row_sent : 조회 결과 Row 수
Rows_examined : 조회 대상 ROW 수

MySQL 쿼리 응답시간 체크
mysqladmin -i5 status -u root -p
Enter password: 
Uptime: 10578  Threads: 1  Questions: 4809  Slow queries: 589  Opens: 1321  Flush tables: 1  Open tables: 348  Queries per second avg: 0.454
Uptime : MySQL server 시삭된 후 현재 시간 (초 단위)
Threads : 현제 DB 서버에 연결된 유저수
Questions : 서버 시작후 지금까지 요청된 쿼리수
Slow queries : mysql 설정파일에 슬로우쿼리의 쿼리시간 이상을 가진 요청수
Opens : 서버가 시작된 후 현재까지 열렸던 테이블수
Open tables : 현재 열려 잇는 테이블 수
Queries per second avg : 평균 초단 쿼리수

========================================================================


MySQL 5.1.34 이상 버전
slow_query_log = 10
slow_query_log_file = /usr/local/mysql/data/mysql-slow-query.log

MySQL 4.x 이상 버전
long_query_time = 10
log-slow-queries = /usr/local/mysql/data/mysql-slow-query.log

MySQL 3.x 이하 버전
set-variable = long_query_time = 10
log-slow-queries = /usr/local/mysql/data/mysql-slow-query.log

'DB > DB 공통 관리' 카테고리의 다른 글

사이트 접속했을때 Too many connection가 나올때  (0) 2023.03.12
MySQL, MariaDB 비밀번호 변경 및 유저 생성  (0) 2023.03.12
my.cnf 설정파일 정리  (0) 2023.03.12
bin log 개념 및 설정  (0) 2023.03.12
DB 용어  (0) 2023.03.12

댓글