Xóa bộ nhớ cache truy vấn MySQL mà không cần khởi động lại máy chủ


162

Có cách nào để xóa bộ nhớ cache truy vấn mysql mà không cần khởi động lại máy chủ myQuery không?

Câu trả lời:


218

Tôi tin rằng bạn có thể sử dụng ...

RESET QUERY CACHE;

... Nếu người dùng bạn đang chạy có quyền tải lại. Ngoài ra, bạn có thể chống phân mảnh bộ đệm truy vấn thông qua ...

FLUSH QUERY CACHE;

Xem phần Tình trạng bộ nhớ cache và bảo trì truy vấn của hướng dẫn sử dụng MySQL để biết thêm thông tin.


27
Đặt lại QUACH CACHE sẽ xóa bộ đệm truy vấn, nhưng cần các đặc quyền ĐÁNG TIN CẬY. FLush QUERY CACHE KHÔNG xóa bộ nhớ cache truy vấn, nó chỉ đơn giản chống phân mảnh để lại kết quả truy vấn được lưu trong bộ nhớ cache
carpii

Điều này thực sự có ích. Chúng tôi đang sử dụng NodeJS với MySQL bằng pool với 10 kết nối. Chúng tôi đã phải đối mặt với vấn đề dữ liệu được ghi bởi một kết nối và được đọc bởi một kết nối khác và nó được lưu trữ rất nhiều. Điều này dường như giúp đỡ rất nhiều. Thx,
psuhas

2
Đối với một số lý do, RESET QUERY CACHEthực sự không rõ ràng cho tôi. Ngoài ra, khởi động lại máy chủ MySQL không giúp đỡ. Một rõ ràng SELECT SQL_NO_CACHElàm các mẹo, nhưng không RESET QUERY CACHE. sync && echo 3 | sudo tee /proc/sys/vm/drop_cachestừ câu trả lời khác cũng không giúp được gì.
Jāni Elmeris

1
Và khởi động lại máy cũng không giúp được gì.
Jāni Elmeris

45

Trong hệ thống của tôi (Ubuntu 12.04) tôi đã tìm thấy RESET QUERY CACHEvà thậm chí khởi động lại máy chủ mysql là không đủ. Điều này là do bộ nhớ đệm đĩa .
Sau mỗi truy vấn, tôi dọn sạch bộ đệm đĩa trong thiết bị đầu cuối:

sync && echo 3 | sudo tee /proc/sys/vm/drop_caches

và sau đó đặt lại bộ đệm truy vấn trong máy khách mysql:

RESET QUERY CACHE;

2
Lưu ý rằng "Bộ đệm truy vấn" trong MySQL không phải là trang chung / chặn bộ đệm. Đó là một bộ đệm của các kết quả của các truy vấn. Không phải lúc nào cũng hữu ích - chúng tôi không sử dụng nó. dev.mysql.com/doc/refman/5.6/en/query-cache.html
phil_w

@phil_w có cách nào để thiết lập lại bộ đệm của các trang / khối mà mysql sử dụng mà không cần khởi động lại mysql và xóa bộ đệm hệ điều hành (linux) không?
matanster

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.