13.7.8.4 & NBSP; Tuyên bố tiêu diệt
KILL [CONNECTION | QUERY] processlist_id
Mỗi kết nối với MySQLD chạy trong một luồng riêng. Bạn có thể giết một chủ đề bằng tuyên bố KILL
processlist_id
.mysqld runs in a separate thread. You can kill a thread with the KILL
processlist_id
statement.
Các định danh danh sách xử lý luồng có thể được xác định từ cột ID
của bảng INFORMATION_SCHEMA
PROCESSLIST
, cột Id
của đầu ra SHOW
PROCESSLIST
và cột PROCESSLIST_ID
của bảng Lược đồ hiệu suất threads
. Giá trị cho luồng hiện tại được trả về bởi hàm
KILL [CONNECTION | QUERY] processlist_id
0.
KILL [CONNECTION | QUERY] processlist_id
1 cho phép sửa đổi KILL [CONNECTION | QUERY] processlist_id
2 hoặc KILL [CONNECTION | QUERY] processlist_id
3 tùy chọn:
4 giống nhưKILL [CONNECTION | QUERY] processlist_id
1 không có công cụ sửa đổi: nó chấm dứt kết nối được liên kết vớiKILL [CONNECTION | QUERY] processlist_id
6 đã cho, sau khi chấm dứt bất kỳ câu lệnh nào, kết nối đang thực thi.KILL [CONNECTION | QUERY] processlist_id
7 chấm dứt câu lệnh mà kết nối hiện đang thực thi, nhưng khiến bản thân kết nối vẫn còn nguyên.KILL [CONNECTION | QUERY] processlist_id
Khả năng xem các chủ đề nào có sẵn để bị giết phụ thuộc vào đặc quyền
KILL [CONNECTION | QUERY] processlist_id
8:Không có
8, bạn chỉ có thể thấy các chủ đề của riêng bạn.KILL [CONNECTION | QUERY] processlist_id
Với
8, bạn có thể thấy tất cả các chủ đề.KILL [CONNECTION | QUERY] processlist_id
Khả năng tiêu diệt các luồng và tuyên bố phụ thuộc vào đặc quyền KILL
processlist_id
1 và đặc quyền KILL
processlist_id
2 không dùng nữa:
Không có
KILL
processlist_id
1 hoặcKILL
processlist_id
2, bạn chỉ có thể giết các chủ đề và câu lệnh của riêng mình.Với
KILL
processlist_id
1 hoặcKILL
processlist_id
2, bạn có thể giết tất cả các luồng và câu lệnh, ngoại trừ để ảnh hưởng đến một luồng hoặc tuyên bố đang thực thi với đặc quyềnKILL
processlist_id
7, phiên riêng của bạn phải có đặc quyềnKILL
processlist_id
7.
Bạn cũng có thể sử dụng Danh sách xử lý MySQLadmin và các lệnh giết MySQLadmin để kiểm tra và tiêu diệt các chủ đề.mysqladmin processlist and mysqladmin kill commands to examine and kill threads.
Khi bạn sử dụng
KILL [CONNECTION | QUERY] processlist_id
1, một cờ tiêu diệt cụ thể chủ đề được đặt cho luồng. Trong hầu hết các trường hợp, có thể mất một thời gian để chuỗi chết vì cờ giết chỉ được kiểm tra trong các khoảng thời gian cụ thể:Trong các hoạt động
ID
0, với các vòngID
1 vàID
2, cờ được kiểm tra sau khi đọc một khối hàng. Nếu cờ giết được đặt, tuyên bố bị hủy bỏ.ID
3 Các hoạt động tạo bản sao bảng Kiểm tra cờ tiêu diệt định kỳ cho mỗi vài hàng được sao chép được đọc từ bảng gốc. Nếu cờ giết được đặt, tuyên bố bị hủy bỏ và bảng tạm thời bị xóa.Tuyên bố
1 trả về mà không cần chờ xác nhận, nhưng kiểm tra cờ giết đã hủy bỏ hoạt động trong một khoảng thời gian hợp lý. Hủy bỏ hoạt động để thực hiện bất kỳ việc dọn dẹp cần thiết cũng mất một thời gian.KILL [CONNECTION | QUERY] processlist_id
Trong các hoạt động
ID
5 hoặcID
6, cờ giết được kiểm tra sau mỗi khối đọc và sau mỗi hàng được cập nhật hoặc xóa. Nếu cờ giết được đặt, tuyên bố bị hủy bỏ. Nếu bạn không sử dụng các giao dịch, các thay đổi không được quay lại.ID
7 Hủy bỏ và trả lạiID
8.Nếu luồng nằm trong bộ xử lý khóa bàn [trạng thái:
ID
9], khóa bảng nhanh chóng bị hủy bỏ.Nếu luồng đang chờ dung lượng đĩa miễn phí trong một cuộc gọi ghi, việc ghi sẽ bị hủy bỏ với thông báo lỗi đầy đủ của đĩa.“disk full” error message.
INFORMATION_SCHEMA
0 hủy bỏ và in hàng đầu ra đầu tiên. Điều này hoạt động trong MySQL 8.0.20 trở lên.
Cảnh báo
Giết một hoạt động INFORMATION_SCHEMA
1 hoặc INFORMATION_SCHEMA
2 trên bảng INFORMATION_SCHEMA
3 dẫn đến một bảng bị hỏng và không sử dụng được. Bất kỳ lần đọc hoặc ghi vào bảng như vậy đều thất bại cho đến khi bạn tối ưu hóa hoặc sửa chữa lại [không bị gián đoạn].
13.7.6.4 & NBSP; Tuyên bố tiêu diệt
KILL [CONNECTION | QUERY] processlist_id
Mỗi kết nối với MySQLD chạy trong một luồng riêng. Bạn có thể giết một chủ đề bằng tuyên bố KILL
processlist_id
.mysqld runs in a separate thread. You can kill a thread with the KILL
processlist_id
statement.
Các định danh danh sách xử lý luồng có thể được xác định từ cột ID
của bảng INFORMATION_SCHEMA
PROCESSLIST
, cột Id
của đầu ra SHOW
PROCESSLIST
và cột PROCESSLIST_ID
của bảng Lược đồ hiệu suất threads
. Giá trị cho luồng hiện tại được trả về bởi hàm
KILL [CONNECTION | QUERY] processlist_id
0.
KILL [CONNECTION | QUERY] processlist_id
1 cho phép sửa đổi KILL [CONNECTION | QUERY] processlist_id
2 hoặc KILL [CONNECTION | QUERY] processlist_id
3 tùy chọn:
4 giống nhưKILL [CONNECTION | QUERY] processlist_id
1 không có công cụ sửa đổi: nó chấm dứt kết nối được liên kết vớiKILL [CONNECTION | QUERY] processlist_id
6 đã cho, sau khi chấm dứt bất kỳ câu lệnh nào, kết nối đang thực thi.KILL [CONNECTION | QUERY] processlist_id
7 chấm dứt câu lệnh mà kết nối hiện đang thực thi, nhưng khiến bản thân kết nối vẫn còn nguyên.KILL [CONNECTION | QUERY] processlist_id
Khả năng xem các chủ đề nào có sẵn để bị giết phụ thuộc vào đặc quyền
KILL [CONNECTION | QUERY] processlist_id
8:Không có
8, bạn chỉ có thể thấy các chủ đề của riêng bạn.KILL [CONNECTION | QUERY] processlist_id
Với
8, bạn có thể thấy tất cả các chủ đề.KILL [CONNECTION | QUERY] processlist_id
Khả năng tiêu diệt các luồng và tuyên bố phụ thuộc vào đặc quyền KILL
processlist_id
2:
Không có
KILL
processlist_id
2, bạn chỉ có thể giết các chủ đề và câu lệnh của riêng bạn.Với
KILL
processlist_id
2, bạn có thể giết tất cả các luồng và câu lệnh.
Bạn cũng có thể sử dụng Danh sách xử lý MySQLadmin và các lệnh giết MySQLadmin để kiểm tra và tiêu diệt các chủ đề.mysqladmin processlist and mysqladmin kill commands to examine and kill threads.
Ghi chú
Bạn không thể sử dụng
KILL [CONNECTION | QUERY] processlist_id
1 với thư viện máy chủ MySQL được nhúng vì máy chủ nhúng chỉ chạy bên trong các luồng của ứng dụng máy chủ. Nó không tạo ra bất kỳ luồng kết nối của riêng nó.Khi bạn sử dụng
KILL [CONNECTION | QUERY] processlist_id
1, một cờ tiêu diệt cụ thể chủ đề được đặt cho luồng. Trong hầu hết các trường hợp, có thể mất một thời gian để chuỗi chết vì cờ giết chỉ được kiểm tra trong các khoảng thời gian cụ thể:Trong các hoạt động
ID
0, với các vòngID
1 vàID
2, cờ được kiểm tra sau khi đọc một khối hàng. Nếu cờ giết được đặt, tuyên bố bị hủy bỏ.ID
3 Các hoạt động tạo bản sao bảng Kiểm tra cờ tiêu diệt định kỳ cho mỗi vài hàng được sao chép được đọc từ bảng gốc. Nếu cờ giết được đặt, tuyên bố bị hủy bỏ và bảng tạm thời bị xóa.Tuyên bố
1 trả về mà không cần chờ xác nhận, nhưng kiểm tra cờ giết đã hủy bỏ hoạt động trong một khoảng thời gian hợp lý. Hủy bỏ hoạt động để thực hiện bất kỳ việc dọn dẹp cần thiết cũng mất một thời gian.KILL [CONNECTION | QUERY] processlist_id
Trong các hoạt động
ID
5 hoặcID
6, cờ giết được kiểm tra sau mỗi khối đọc và sau mỗi hàng được cập nhật hoặc xóa. Nếu cờ giết được đặt, tuyên bố bị hủy bỏ. Nếu bạn không sử dụng các giao dịch, các thay đổi không được quay lại.ID
7 Hủy bỏ và trả lạiID
8.Nếu luồng nằm trong bộ xử lý khóa bàn [trạng thái:
ID
9], khóa bảng nhanh chóng bị hủy bỏ.Nếu luồng đang chờ dung lượng đĩa miễn phí trong một cuộc gọi ghi, việc ghi sẽ bị hủy bỏ với thông báo lỗi đầy đủ của đĩa.“disk full” error message.
Cảnh báo
Giết một hoạt động INFORMATION_SCHEMA
1 hoặc INFORMATION_SCHEMA
2 trên bảng INFORMATION_SCHEMA
3 dẫn đến một bảng bị hỏng và không sử dụng được. Bất kỳ lần đọc hoặc ghi vào bảng như vậy đều thất bại cho đến khi bạn tối ưu hóa hoặc sửa chữa lại [không bị gián đoạn].