ProxySql QueryCache - invalidation on Insert statement

Есть ли способ аннулировать кэш запросов ProxySql после операций вставки?

Как воспроизвести:

создать правило запроса mysql вот так:

    *************************** 1. row ***************************
              rule_id: 20
               active: 1
             username: username_1
           schemaname: NULL
               flagIN: 0
          client_addr: NULL
           proxy_addr: NULL
           proxy_port: NULL
               digest: 0xF523C21ECC3CF547
         match_digest: NULL
        match_pattern: NULL
 negate_match_pattern: 0
         re_modifiers: CASELESS
              flagOUT: NULL
      replace_pattern: NULL
destination_hostgroup: 1
            cache_ttl: 60000
   cache_empty_result: NULL
        cache_timeout: NULL
            reconnect: NULL
              timeout: NULL
              retries: NULL
                delay: NULL
    next_query_flagIN: NULL
       mirror_flagOUT: NULL
     mirror_hostgroup: NULL
            error_msg: NULL
               OK_msg: NULL
          sticky_conn: NULL
            multiplex: NULL
  gtid_from_hostgroup: NULL
                  log: NULL
                apply: 1
              comment: NULL

Digest is from "select * from sbtest1 order by id desc limit ?"

Я подключился к proxysql с терминала и запустил эти запросы:

SELECT*
FROM sbtest1
ORDER BY id DESC
LIMIT 3 ;

INSERT INTO sbtest1(k, c, pad) VALUES (1, "a", "g");

SELECT *
FROM sbtest1
ORDER BY id DESC
LIMIT 3 ;

После вставки последний select возвращает кэшированные данные, кэш запросов не был аннулирован при вставке

0
задан 30 October 2020 в 12:56
1 ответ

Вы можете обойти кеш ProxySQL.

Попробуйте следующее:

SELECT /*!40001 SQL_NO_CACHE */ * ОТ sbtest1 ЗАКАЗАТЬ ПО ИДЕНТИФИКАТОРУ DESC ПРЕДЕЛ 3 ;

0
ответ дан 15 July 2021 в 01:27

Теги

Похожие вопросы