Lệnh kiểm tra hoạt động của MySQL query cache
Giả sử chúng ta có cấu hình Query cache như sau:
query_cache_limit = 2M
query_cache_size = 50M
query_cache_type = 1
Để kiểm tra xem Query cache đã bật chưa, ta dùng lệnh:
mysql> show variables like '%query_cache%';
+------------------------------+----------+
| Variable_name | Value |
+------------------------------+----------+
| have_query_cache | YES |
| query_cache_limit | 2097152 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 52428800 |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
+------------------------------+----------+
6 rows in set (0.00 sec)
Query cache đã bật và các thông số đã đúng như ta thiết lập. Lúc này ta kiểm tra xem Query cache hoạt động thế nào:
mysql> show status like '%qcache%';
+-------------------------+----------+
| Variable_name | Value |
+-------------------------+----------+
| Qcache_free_blocks | 88 |
| Qcache_free_memory | 26300528 |
| Qcache_hits | 17964 |
| Qcache_inserts | 5332 |
| Qcache_lowmem_prunes | 0 |
| Qcache_not_cached | 79 |
| Qcache_queries_in_cache | 1184 |
| Qcache_total_blocks | 2841 |
+-------------------------+----------+
8 rows in set (0.00 sec)
Với:
Qcache_free_memory: Lượng RAM giành riêng cho việc cache. (26300528 ~ 30MB)
Qcache_hits: Số lượng Query lấy từ cache ra sử dụng.
Qcache_lowmem_prunes: Lượng RAM tối thiểu được thêm vào khi lượng Qcache_free_memory bị sử dụng hết. Nếu số lượng này quá lớn, nghĩa là Qcache_lowmem_prunes sẽ phải tự thông thêm RAM vào cache và lúc này bạn cần tăng Qcache_free_memory lên. Nếu gặp giá trị bằng 0
Qcache_queries_in_cache: Số query đang được cache.
Cách setup cache trong mysql như sau :
- enable chức năng query cache mysql :
mysql>SET GLOBAL query_cache_type = ON;
- Thiết lập giá trị lượng RAM dành cho việc query cache mysql :
mysql>SET GLOBAL query_cache_size = 15728640;
// 15M = 15728640 byte,