2010-11-15 29 views
8

Hiện tình trạng như 'Qcache_queries_in_cache' lợi nhuận:Làm cách nào để liệt kê các truy vấn được lưu trong bộ nhớ cache trong MySQL? (Qcache_queries_in_cache)

+-------------------------+----------+ 
| Variable_name   | Value | 
+-------------------------+----------+ 
| Qcache_queries_in_cache | 327  | 
+-------------------------+----------+ 

Làm thế nào để in những 327 truy vấn?

Trong nỗ lực tối ưu hóa bộ đệm ẩn mysql, tôi muốn thử chuyển sang bộ nhớ đệm "theo yêu cầu". Nhưng trước khi tôi làm tôi muốn có được một ý nghĩa dứt khoát trong đó các truy vấn đang được lưu trữ hoặc bị loại bỏ. Tôi đã thử tài liệu mysql, google và tìm kiếm stackoverflow nhưng không may mắn.

Trả lời

8

Truy vấn sql AFAIK không được lưu trữ vào Qcache chỉ băm của chúng. Vì vậy, không có cách nào để tìm các truy vấn nào được lưu trữ trong bộ nhớ cache, bạn thực hiện một truy vấn của mình và xem các thay đổi của cột Giá trị.

+0

thx ... Tôi đang ở trên máy chủ sản xuất và thực hiện nhiều truy vấn được thực hiện và thay đổi đốm sẽ không hoạt động. Tôi đã hy vọng cho một chế độ gỡ lỗi của một số loại. – user508627

+0

Có cách nào để truy cập vào các băm đó không? – simbabque

2

Nếu bạn bật Phiên cụ profiling biến

SET SESSION PROFILING=on; 
show profiles; 

Bây giờ bằng cách kiểm tra hồ sơ chương trình cho truy vấn của bạn query_id;

mysql> show profile for query 2; 

+--------------------------------+----------+ 
| Status       | Duration | 
+--------------------------------+----------+ 
| starting      | 0.000017 | 
| checking query cache for query | 0.000005 | 
| checking privileges on cached | 0.000003 | 
| sending cached result to clien | 0.000005 | 
| logging slow query    | 0.000002 | 
| cleaning up     | 0.000001 | 
+--------------------------------+----------+ 

Bằng cách kiểm tra cột trạng thái, bạn có thể xem liệu truy vấn được lưu vào bộ nhớ cache hay chưa.

Nhưng đây chỉ là một phiên cụ thể mà bạn đã bật lược tả cho mỗi phiên.

Các vấn đề liên quan