2011-08-23 58 views
4

我已經打開query_cache,以及分配的內存爲它:查詢緩存不起作用

| query_cache_limit   | 1048576 | 
| query_cache_min_res_unit  | 4096  | 
| query_cache_size    | 16777216 | 
| query_cache_type    | ON   | 
| query_cache_wlock_invalidate | OFF  | 

但查詢是不進行緩存:

| Qcache_free_blocks    | 1  | 
| Qcache_free_memory    | 16768400 | 
| Qcache_hits     | 0  | 
| Qcache_inserts     | 0  | 
| Qcache_lowmem_prunes   | 0  | 
| Qcache_not_cached    | 163  | 
| Qcache_queries_in_cache  | 0  | 
| Qcache_total_blocks   | 1  | 

我使用InnoDB作爲存儲引擎,沒有交易。未被高速緩存的示例查詢:

select * from `feed-ts`.feeds where id < 10; 

它只返回一行。

任何想法?

回答

8

還有a bug in MySQL

查詢緩存根本不會用於在帶有帶連字符名稱的數據庫(如feed-ts)中的InnoDB表上的查詢。

Renaming」您的數據庫似乎是現在唯一的解決方案。

+0

很好找,毛病bug –

+0

呵呵,這樣一個爛攤子:-S謝謝 – zerkms

+0

這個bug顯然是固定的[MySQL 5.6.9](http://dev.mysql.com/doc/relnotes/mysql/ 5.6/EN /新聞5-6-9.html)。 –