查询缓存不起作用

zer*_*kms 4 mysql

我打开了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        |
Run Code Online (Sandbox Code Playgroud)

但查询不会缓存:

| 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        |
Run Code Online (Sandbox Code Playgroud)

我使用Innodb作为存储引擎,没有交易.未缓存的示例查询:

select * from `feed-ts`.feeds where id < 10;
Run Code Online (Sandbox Code Playgroud)

它只返回一行.

有任何想法吗?

Joh*_*ess 8

MySQL中一个错误.

查询缓存根本不会用于具有连字符名称(如feed-ts)的数据库中的InnoDB表上的查询.

" 重命名 "您的数据库似乎是目前唯一的解决方案.