如何在mysql数据库中更新命令超时。我知道如何在应用程序级别执行此操作,但我想在 db end 更改命令超时。所以我只能在一个地方改变它。 在申请结束时我正在使用
"default command timeout = 0"
它工作正常。但有人能告诉我如何在db end做同样的事情吗?
答案 0 :(得分:1)
答案是:你做不到。为什么?因为command timeout特定于MySQL .Net Connector:
设置要使用的命令超时的默认值。这不会取代单个命令对象上的单个命令超时属性。如果设置命令timeout属性,将使用该属性。此选项已添加到Connector / Net 5.1.4
中
正如MySqlCommand object上的MySQL文档所说:
在MySQL Connector / Net 6.2之前,包括MySqlCommand.CommandTimeout 用户处理时间,即与直接无关的处理时间 使用连接器。超时是通过.NET Timer实现的, 在CommandTimeout秒之后触发。这个计时器消耗了 线。
MySQL Connector / Net 6.2引入了与如何对齐的超时 Microsoft处理SqlCommand.CommandTimeout。这个属性是 命令期间所有网络读写的累积超时 执行或处理结果。超时仍然可能发生在 返回第一行后的MySqlReader.Read方法,并且确实如此 不包括用户处理时间,仅包括IO操作。 6.2 实现使用底层流超时工具,因此更多 高效的,因为它不需要额外的计时器线程 是先前实施的情况。
因此,在6.2之前,命令超时包括客户端处理时间 - 这显然不能在服务器端考虑。
自6.2以来,行为已更改,不包括客户端处理时间。但是,它现在被定义为“累积超时所有网络读写”。在MySQL服务器中,您可以配置各种超时,但这些超时不是累积的,也不适用于读取和写入。只有单独的读写超时。因此,此连接器参数没有映射到MySQL配置。