테스트 사이트 - 개발 중인 베타 버전입니다

웹 느릴 때 꼭 해보는 DB 쿼리 로그 팁 공유합니다

· 5개월 전 · 578 · 1

안녕하세요 개발자 여러분
요즘 그누보드든, 워드프레스든, 영카트든 사이트가 좀 느리다 싶을 때
무조건 CSS/JS 때문이라고 생각하는 경우가 있는데요,
사실 DB 쿼리 병목이 주범인 경우가 꽤 많더라구요.

그래서 오늘은 제가 실무에서 자주 쓰는 SQL 쿼리 로깅 팁 하나 공유드려요.
이거 한번 써보시면 어떤 쿼리가 많이 돌고 느린지 금방 알 수 있어서
속도 튜닝에 큰 도움이 됩니다.

 

방법 1: PHP 코드에서 직접 로그 찍기

// common.php 또는 config.php에 추가
function log_query($sql) {
    $log_file = G5_DATA_PATH.'/query_log.txt';
    file_put_contents($log_file, date('Y-m-d H:i:s').' | '.$sql."\n", FILE_APPEND);
    return $sql;
}

// 쿼리 실행 시 이렇게 호출
$sql = "SELECT * FROM g5_write_board WHERE wr_id = 1";
sql_query(log_query($sql));

 

이렇게 하면 /data/query_log.txt 파일에 날짜랑 쿼리가 하나씩 기록됩니다.
나중에 파일 열어서 보면 같은 쿼리가 10번, 100번씩 돌고 있는 것도 쉽게 보입니다.

 

방법 2: MySQL 자체 기능으로 느린 쿼리 추적

-- MySQL 콘솔에서
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL slow_query_log_file = '/var/log/mysql-slow.log';
SET GLOBAL long_query_time = 1; -- 1초 이상 걸리는 쿼리만 기록
 

서버 접근 권한 있으신 분들은 이 방법도 좋습니다.
mysql-slow.log 파일 열어보면 진짜 병목 쿼리들이 그대로 찍혀요.

 

 

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 1개

감사합니다 데이터 베이스 잘 다루시는 분들 보면 부럽더라구요 : )

게시글 목록

번호 제목
16801
16798
16796
16795
16791
16790
16785
16777
16776
16766
16760
16759
16740
16737
16735
16728
16713
16700
16691
16669
16668
16660
16655
16654
16647
16639
16637
16634
16629
16620