안녕하세요 개발자 여러분
요즘 그누보드든, 워드프레스든, 영카트든 사이트가 좀 느리다 싶을 때
무조건 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 파일 열어보면 진짜 병목 쿼리들이 그대로 찍혀요.
게시글 목록
| 번호 | 제목 |
|---|---|
| 17523 | |
| 17516 | |
| 17515 | |
| 17514 |
PHP
PHP 배열순설정
1
|
| 17498 |
PHP
PHP로 PDF파일 다루기
4
|
| 17493 | |
| 17490 | |
| 17487 | |
| 17485 |
JavaScript
jQuery없이 네티브자바스크립트로 서버에 요청보내기 7 - JSONP
5
|
| 17481 |
JavaScript
jQuery없이 네티브자바스크립트로 서버에 요청보내기 6- CORS
1
|
| 17478 |
JavaScript
jQuery없이 네티브자바스크립트로 서버에 요청보내기5- 파일업로드
1
|
| 17477 | |
| 17474 | |
| 17473 |
JavaScript
jQuery없이 네티브자바스크립트로 서버에 요청보내기4 - JSON
|
| 17472 | |
| 17470 |
JavaScript
jQuery없이 네티브자바스크립트로 서버에 요청보내기2 - POST
|
| 17469 |
JavaScript
jQuery없이 네티브자바스크립트로 서버에 요청보내기1 - GET
2
|
| 17463 |
JavaScript
express로 간단한 부트스트랩 내비게이션 메뉴 생성기(아주 쉬움)
|
| 17462 | |
| 17461 |
PHP
PHP로 채트서버 만들기
|
| 17460 |
JavaScript
ThreeJS로 3디 지구 만들기
|
| 17458 | |
| 17457 |
PHP
PHP 랜덤생성하기
|
| 17454 | |
| 17453 |
MySQL
DB백업코드
5
|
| 17448 |
JavaScript
숫자에 천단위로 콤마(,) 찍기
11
|
| 17447 | |
| 17446 | |
| 17445 | |
| 17444 |
node.js
nodejs 에서 CSV파일 파싱하여 배열로 변환하기
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기