Giết quá trình truy vấn MySQL

Đôi khi bạn có thể gặp các tình huống cần hủy một số quy trình AWS RDS Mysql nhất định. Ví dụ, nếu quá trình nào đó bị treo; . Điều này có thể dẫn đến việc tạo ra một số lượng lớn các kết nối mysql và cuối cùng dẫn đến các vấn đề về bộ nhớ. Trong những tình huống như vậy, thậm chí đây không phải là phương pháp hay nhất, bạn có thể cần phải hủy các quy trình RDS Mysql bốn lần. Bài viết này giải thích cách tắt quá trình RDS Mysql kết nối với RDS db

Hãy xem cách bạn có thể lấy danh sách các quy trình hiện tại và hủy bất kỳ quy trình nào theo cách thủ công

  1. Xem danh sách các quy trình hiện tại
    Bạn nên có quyền truy cập vào RDS Mysql. Đăng nhập vào Mysql và chạy lệnh bên dưới
    show processlist;
    Bạn sẽ thấy danh sách các quy trình với thời gian, trạng thái, thông tin và một số trường khác. Quá trình nào bị giết có thể được quyết định bằng cách xem những thông tin đó
  2. Ghi lại ID tiến trình sẽ bị hủy
    Khi bạn chỉ ra quy trình sẽ bị hủy, hãy ghi lại ID quy trình (cột đầu tiên trong đầu ra của lệnh trên)
  3. Giết quá trình
    Sử dụng lệnh dưới đây để giết tiến trình bằng ID
    CALL mysql.rds_kill(process_id);
    bán tại. CALL mysql.rds_kill( 171537943);

Đây là về việc giết một quá trình nhất định. Nhưng bạn có thể gặp phải tình huống cần hủy tất cả các quy trình thuộc các tiêu chí nhất định. Sử dụng truy vấn bên dưới, bạn có thể nhận danh sách các truy vấn sẵn sàng thực hiện chỉ định tiêu chí
select concat('CALL mysql.rds_kill( ',id,');') from information_schema.processlist where [your criteria];
Ví dụ
________số 8_______
bạn có thể sao chép đầu ra (danh sách các truy vấn) và chạy chúng ngay lập tức

Trong một số trường hợp khác, bạn có thể cần tự động hóa tất cả các quy trình trên. Bạn có thể làm điều đó bằng cách sử dụng tập lệnh shell chạy trên máy chủ web của mình. Tập lệnh bên dưới sẽ nhận danh sách các quy trình phù hợp với tiêu chí bạn đặt;

Các doanh nghiệp có thể sử dụng MySQL để hợp lý hóa các quy trình và quản lý hiệu quả dữ liệu có cấu trúc. Người dùng có thể thực hiện các truy vấn hoặc yêu cầu thông qua MySQL để truy cập thông tin được lưu trữ trong cơ sở dữ liệu. Tuy nhiên, đôi khi, các truy vấn này có thể mất nhiều thời gian để thực hiện, điều này có thể dẫn đến việc chặn các giao dịch khác đang cố gắng sử dụng các bảng bị khóa. Nếu bạn không thể thực hiện một hành động do giao dịch bị đình trệ, bạn có thể thực hiện lệnh để hủy một quy trình cụ thể đang chạy trong tài khoản của nhân viên

  1. 1

    Truy cập Máy chủ MySQL từ dấu nhắc shell bằng lệnh sau

    mysql -u -h -p

    Replace "," "" and "" with the appropriate credentials.

  2. 2

    Thực hiện lệnh "hiển thị danh sách quy trình;"

  3. 3

    Tham khảo trường Thời gian để xác định chuỗi đã hoạt động trong bao lâu. Thực hiện lệnh sau để hủy truy vấn dài hạn

    kill <#>;

    Replace "<#>" with the ID associated with the applicable thread.

Người giới thiệu

  • mysql. mysql 5. 0 Tài liệu tham khảo. SHOW PROCESSLIST Cú pháp
  • mysql. mysql 5. 0 Tài liệu tham khảo. Cú pháp GIẾT

tiểu sử nhà văn

Ruri Ranbe bắt đầu viết văn từ năm 2008. Cô nhận được điểm A. A. bằng văn học Anh từ Cao đẳng Valencia và đang hoàn thành bằng B. S. trong khoa học máy tính tại Đại học Trung tâm Florida. Ranbe cũng có hơn sáu năm kinh nghiệm chuyên môn về công nghệ thông tin, chuyên về kiến ​​trúc máy tính, hệ điều hành, mạng, quản trị máy chủ, ảo hóa và thiết kế Web

Để dừng truy vấn MySQL đang chạy, chúng ta có thể sử dụng lệnh KILL với id tiến trình. Cú pháp như sau -

kill processId;

Hoặc bạn có thể dừng truy vấn MySQL đang chạy với sự trợ giúp của cú pháp dưới đây -

call mysql.rds_kill(queryId);

Trước tiên chúng ta hãy lấy processId với sự trợ giúp của lệnh show. Truy vấn như sau -

mysql> show processlist;

Đây là đầu ra với danh sách các quy trình -

+----+-----------------+-----------------+----------+---------+--------+------------------------+------------------+
| Id |  User           | Host            | db       | Command | Time   | State                  | Info             |
+----+-----------------+-----------------+----------+---------+--------+------------------------+------------------+
| 4  | event_scheduler | localhost       | NULL     | Daemon  | 221718 | Waiting on empty queue | NULL             |
| 47 | root            | localhost:60722 | business | Query   | 0      | starting               | show processlist |
+----+-----------------+-----------------+----------+---------+--------+------------------------+------------------+
2 rows in set (0.03 sec)

Ở đây, hai quy trình đang chạy trong MySQL và nếu bạn muốn dừng một trong số chúng, thì bạn có thể sử dụng cú pháp trên với id cụ thể bằng cách sử dụng “KILL”