开发者社区 问答 正文

druid会发了kill命令吗?

如果SQL太慢了(比如查询速度很慢), druid会发了个kill命令杀掉吗? 如果有,如何设置这个时间?

原提问者GitHub用户guozhouwei

展开
收起
山海行 2023-07-05 21:06:58 92 分享 版权
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    Druid连接池本身不会向数据库发送kill命令来终止执行缓慢或者长时间运行的SQL语句,因为这样可能会导致数据不一致或者事务回滚等问题。如果需要终止执行缓慢或者长时间运行的SQL语句,建议通过数据库管理工具或者其他方式手动执行kill命令。

    如果您希望Druid连接池能够自动终止执行缓慢或者长时间运行的SQL语句,可以使用Druid的StatFilter来实现。StatFilter可以监控SQL执行的时间,如果执行时间超过指定的阈值,就会中断SQL执行并抛出异常。

    2023-07-30 10:07:04
    赞同 展开评论
  • 如果你设置了executeQueryTimeOut,mysql driver会发,而不是dataSource发。

    原回答者GitHub用户wenshao

    2023-07-06 11:54:15
    赞同 展开评论
问答分类:
问答地址: