在mysql db配置中将命令超时更新为0

时间:2017-07-24 08:30:08

标签: mysql command-timeout

如何在mysql数据库中更新命令超时。我知道如何在应用程序级别执行此操作,但我想在 db end 更改命令超时。所以我只能在一个地方改变它。 在申请结束时我正在使用

"default command timeout = 0"

它工作正常。但有人能告诉我如何在db end做同样的事情吗?

1 个答案:

答案 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配置。