• 28/06 cập nhật đăng ký đăng nhập qua Google & Facebook

Mysql Note

TenHoshi

Administrator
Staff member
Trusted Uploader
Bật slow query log cho MySQL để log query > 3 giây

Chạy từng lệnh dưới đây trong MySQL CLI:

Code:
SET GLOBAL slow_query_log = 1;
SET GLOBAL long_query_time = 3;
SET GLOBAL slow_query_log_file = '/var/log/mysql/mysql-slow.log';
SET GLOBAL log_queries_not_using_indexes = 0;

Giải thích:
  • slow_query_log = 1 → bật tính năng log query chậm.
  • long_query_time = 3 → log query chạy > 3 giây.
  • slow_query_log_file → nơi lưu log (đường dẫn này chuẩn trên Ubuntu/Debian).
  • log_queries_not_using_indexes = 0 → không log query nhanh nhưng không index (tùy bạn).

📌 Lưu cấu hình vĩnh viễn (qua reboot)


Mở file config:

Ubuntu/Debian​

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

CentOS/AlmaLinux​

sudo nano /etc/my.cnf

Thêm hoặc sửa:

Code:
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 3
log_queries_not_using_indexes = OFF

Restart MySQL:

sudo systemctl restart mysql

📌 Xem log query chậm

File log nằm ở:

/var/log/mysql/mysql-slow.log

Xem trực tiếp:

sudo tail -f /var/log/mysql/mysql-slow.log

Ví dụ:

# Time: 2025-11-15T12:34:56
# Query_time: 5.201 Lock_time: 0.000 Rows_sent: 1000 Rows_examined: 200000
SELECT * FROM orders WHERE user_id = 123 ORDER BY created_at DESC;

→ Bạn sẽ thấy rõ query nào, chạy bao lâu, quét bao nhiêu dòng.

📌 (Optional) Log luôn query không dùng index


Rất hữu ích để phát hiện query nguy hiểm:

SET GLOBAL log_queries_not_using_indexes = 1;

Nhưng file log sẽ lớn → chỉ bật khi đang debug.

📌 Extra: Phân tích slow log bằng Percona (rất hay)​


Cài Percona Toolkit:

Ubuntu/Debian:

sudo apt install percona-toolkit

Chạy:

pt-query-digest /var/log/mysql/mysql-slow.log

→ Tự động phân tích:
  • 10 query chậm nhất
  • 10 query thực thi nhiều nhất
  • Query nào đang “ăn CPU” nhất
  • Gợi ý Index
 

Guest Post 2022

Top