ProxySql QueryCache-Insert 语句无效

ProxySql QueryCache-Insert 语句无效

有没有办法在插入语句后使 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

摘要来自“从 sbtest1 中选择 * 按 id 降序限制?”

我从终端连接到 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 ;

插入后,最后一个选择返回缓存数据,查询缓存在插入时未失效

答案1

您可以绕过 ProxySQL 缓存。

请尝试以下操作:

从 sbtest1 中选择/*!40001 SQL_NO_CACHE */* 按 id 降序排列,限制为 3;

相关内容