开发者社区> 问答> 正文

自定义 SQL 超时时间怎么办?

在 DRDS 中,DRDS 节点与 RDS 的默认的 SQL 执行超时时间是 900 秒(可以调整),但是对于某些特定的慢 SQL,其执行时间可能超过了 900 秒 。针对这种慢 SQL,DRDS 提供了调整超时时间的自定义 HINT。通过这个自定义 HINT 可以任意调整 SQL 执行时长。

语法

DRDS 自定义 SQL 超时时间 HINT 的语法如下:

/!TDDL:SOCKET_TIMEOUT=time*/
其中,SOCKET_TIMEOUT的单位是毫秒。通过该 HINT 用户可以根据业务需要,自由调整 SQL 语句的超时时间。

注意:

DRDS 自定义 HINT 支持 /!TDDL:hint command*/ 和 /*TDDL:hint command*/ 两种格式。

如果使用 /*TDDL:hint command*/ 格式,在使用 MySQL 官方命令行客户端执行带有 DRDS 自定义 HINT 的 SQL 时,请在登录命令中加上 -c 参数。否则,由于 DRDS 自定义 HINT 是以 MySQL 注释 形式使用的,该客户端会将注释语句删除后再发送到服务端执行,导致 DRDS 自定义 HINT 失效。具体请查看 MySQL 官方客户端命令。

示例

设置 SQL 超时时间为40秒:

/!TDDL:SOCKET_TIMEOUT=40000*/SELECT * FROM t_item;
注意:超时时间设置得越长,占用数据库资源的时间就会越长。如果同一时间长时间执行的 SQL 过多,可能消耗大量的数据库资源,从而导致无法正常使用数据库服务。所以,对于长时间执行的 SQL 语句,尽量对 SQL 语句进行优化。

展开
收起
猫饭先生 2017-10-30 13:47:38 2268 0
1 条回答
写回答
取消 提交回答
  • SQL无需定义太长的时间,一般超过1秒都算延时高的了,要计入慢查询的

    2021-10-12 11:23:20
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载