Назад | Перейти на главную страницу

Кеш запросов MariaDB не используется с подготовленными операторами

Мы наблюдаем проблему с нашей настройкой MariaDB, когда наши запросы, выполняемые как подготовленные операторы, не кэшируются, однако запросы, выполняемые локально с помощью команды mysql (то есть текстового протокола), действительно кэшируются.

я прочитал Кэш запросов MySQL включен, но не используется но это не особо помогло.

Я прочитал в каком-то устаревшем сообщении в блоге от 2007 года и ранее, что подготовленные операторы вообще не кэшируются из-за того, что они не реализованы. Однако в документации MariaDB и MySQL упоминается, что это должно работать.

Вот моя конфигурация:

MariaDB [(none)]> SHOW VARIABLES LIKE 'have_query_cache';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| have_query_cache | YES   |
+------------------+-------+

MariaDB [(none)]> SHOW STATUS LIKE 'Qcache%';
+-------------------------+-----------+
| Variable_name           | Value     |
+-------------------------+-----------+
| Qcache_free_blocks      | 1         |
| Qcache_free_memory      | 268417416 |
| Qcache_hits             | 0         |
| Qcache_inserts          | 6         |
| Qcache_lowmem_prunes    | 0         |
| Qcache_not_cached       | 3797      |
| Qcache_queries_in_cache | 0         |
| Qcache_total_blocks     | 1         |
+-------------------------+-----------+

MariaDB [(none)]> SHOW VARIABLES LIKE 'query_cache%';
+------------------------------+-----------+
| Variable_name                | Value     |
+------------------------------+-----------+
| query_cache_limit            | 262144    |
| query_cache_min_res_unit     | 4096      |
| query_cache_size             | 268435456 |
| query_cache_strip_comments   | OFF       |
| query_cache_type             | ON        |
| query_cache_wlock_invalidate | OFF       |
+------------------------------+-----------+

Кроме того, это количество выполненных запросов намного выше, чем Qcache_not_cached. Я предполагаю, что они будут по крайней мере сопоставимы, учитывая использование кеша 0.

MariaDB [(none)]> SHOW STATUS LIKE '%queries%';
+-------------------------+---------+
| Variable_name           | Value   |
+-------------------------+---------+
| Empty_queries           | 0       |
| Qcache_queries_in_cache | 0       |
| Queries                 | 2306776 |
| Slow_queries            | 0       |
+-------------------------+---------+

Я включил кеш в начале раздела [mysqld] в my.cnf, что тоже не сильно помогло.

Есть другие идеи?