MySQL Sleep Query là gì?

Tác giả Security+, T.Tư 13, 2024, 02:45:14 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Có rất nhiều lần máy chủ có thể bị báo cáo là chậm do MySQL. Bạn có thể kiểm tra truy vấn MySQL hiện đang hoạt động bằng lệnh sau:

Mã nguồn [Chọn]
mysqladmin pr
Bạn có thể thấy rất nhiều truy vấn sau:


1. Những truy vấn MySQL "Ngủ" đó là gì?

Khi kết nối cơ sở dữ liệu được tạo, một phiên cũng được tạo đồng thời trên máy chủ cơ sở dữ liệu, nhưng nếu kết nối và phiên đó không được đóng đúng cách thì truy vấn sẽ chuyển sang chế độ ngủ sau khi hết thời gian chờ.

Theo hướng dẫn tham khảo MySQL, "Ngủ là luồng chờ khách hàng gửi câu lệnh mới tới nó".

Vì vậy, truy vấn giấc ngủ là truy vấn chờ thời gian chờ kết thúc. Điều đó có nghĩa là truy vấn cần có thời gian để thực hiện và kết thúc sẽ chuyển sang trạng thái ngủ.

Ảnh hưởng của số lượng lớn truy vấn MYSQL – sleep:

  • Tăng mức tiêu thụ tài nguyên CPU và bộ nhớ (RAM, bộ đệm và bộ xử lý).
  • Làm chậm máy chủ.
  • Tăng thời gian ngừng hoạt động của các trang web - tin tặc cố gắng làm chậm trang web bằng cách sử dụng tính năng chèn SQL khi ngủ

2. Làm thế nào để khắc phục những vấn đề này?

Để khắc phục vấn đề này của lệnh ngủ SQL, MySQL sử dụng hai tham số sau đây:

Mã nguồn [Chọn]
interactive_ timeout
wait_ timeout

Những giá trị này yêu cầu phải đặt một số giá trị nhất định để giúp truy vấn chạy theo thời gian đã đặt.

Theo mặc định, cả hai tham số đều được đặt giá trị là 28800 giây (tức là 8 giờ).

Bạn nên nhờ quản trị viên hệ thống và nhà phát triển web đủ trình độ xem xét mã hóa trang web của mình để đảm bảo các truy vấn SLEEP đó không hoạt động quá lâu nhằm giảm lượng tài nguyên CPU dồi dào.