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