【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】
【附件:截图/日志/监控】
有事中防护的中间件吗?如程序中有个慢SQL,拖慢数据库,数据库自动对这句SQL熔断
监控长时间运行的sql,然后kill?
早就想整个存储过程,定时执行,但担心误伤
说的是自动SQL限流功能吧
自动限流主要应用在以下3种场景:
- 流量问题:出现缓存穿透或异常调用情况,导致某类SQL并发量急剧上升。
- 数据问题:存在大订单数据的账号,该账号的相关SQL占用大量数据库资源。
- SQL问题:未创建索引的SQL被大量调用,影响正常业务。
我们业务中也有类似问题,大客户数据处理的时候,拖慢了整个服务,目前就是怕误伤
这种交给中间件或者数据库来做不太合适吧,可能有的业务就是慢呢,业务层面来控制比较合理
不负责的内部消息:有这个想法,可能后面会有类似功能。
MAX_EXECUTION_TIME 这个参数不就是干这个用的吗?
界定好边界就行,就像服务层面的熔断,制定好熔断策略,用户自己控制就行
TiDB oom就能对内存使用过高的SQL进行熔断。
我说的想法是对一类 SQL 进行限流。
这个参数一刀切容易误伤,我觉得可以用hint或者设置session级别的参数让开发在代码里去限制
mysql还可以设置sql级别的,就是使用上有点麻烦了
tidb不支持存储过程!
增加tidbserver接点,专门处理这种慢SQL
是的,我们这边业务跑在mysql上,准备将报表、看板需求跑在Tidb上。