Bật slow query log cho MySQL để log query > 3 giây
Chạy từng lệnh dưới đây trong MySQL CLI:
Giải thích:
Mở file config:
Thêm hoặc sửa:
Restart MySQL:
File log nằm ở:
Xem trực tiếp:
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.
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.
Cài Percona Toolkit:
Ubuntu/Debian:
Chạy:
→ Tự động phân tích:
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.cnfCentOS/AlmaLinux
sudo nano /etc/my.cnfThê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.logXem trực tiếp:
sudo tail -f /var/log/mysql/mysql-slow.logVí 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-toolkitChạ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