You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

慢查询与ProxySQL:能否通过ProxySQL自动重定向执行时间过长的请求?

可行性结论

该需求完全可以通过 ProxySQL 原生能力实现,不需要依赖额外第三方工具,核心是结合 ProxySQL 的查询统计、超时拦截、路由规则三类能力配合使用。

具体实现思路
  • 先划分后端实例分组
    在ProxySQL的mysql_servers表中,将普通业务实例和长查询专属实例划入不同hostgroup,例如普通读写请求默认路由到hostgroup=10,慢查询专属的从库/大规格实例划入hostgroup=20,两组实例的连接池、超时参数分开配置。
  • 配置普通查询的超时阈值
    全局或针对普通业务hostgroup设置mysql-query_timeout=3000(单位为毫秒,可根据业务实际情况调整),超过该时长的查询会被ProxySQL主动拦截,同时查询信息会被记录到stats_mysql_query_digest统计表里。
  • 配置慢查询定向路由规则
    从stats_mysql_query_digest表中筛选出历史执行时间超过阈值的查询摘要digest,在mysql_query_rules表中添加对应规则:将匹配到该digest的查询直接路由到长查询专属hostgroup,同时单独为这类规则设置更长的超时时间,例如mysql-query_timeout=3600000(1小时),适配长查询的执行需求。
  • 实现规则自动化更新
    可以写定时任务脚本,定期读取stats_mysql_query_digest的统计数据,自动将符合慢查询特征的查询添加到路由规则中,不需要人工维护即可实现自动重定向。
注意事项

配置前建议先在测试环境验证阈值合理性,避免阈值设置过低导致普通请求被误切到长查询实例,挤占专属资源;另外可以单独限制长查询实例的最大连接数,避免大量长查询堆积导致实例不可用。


内容的提问来源于stack exchange,提问作者Axel Morvan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 09:39:02