MySql连接字符串中的“Connection Lifetime=0”是什么意思?

5
Connection Lifetime=0在连接字符串中的确切含义是什么?它表示连接池中的连接在使用后不会被重用,而是每次都会创建新的连接。
4个回答

4
根据我的研究,我认为Myra 是其他答案中最接近的答案。

它与连接超时不同。

相反,请参阅文章中的伪代码:

On SqlConnection.Close

   Check if time the connection has been open is greater than Connection Lifetime if it is, throw the connection away

   Else Put connection on the pool

同一篇文章解释了为什么你很少想使用这个属性(以及你可能使用它的情况)。
请注意,根据上述文章,它已被重命名为“负载平衡超时”,以尝试澄清其行为。

2
此外,当您使用Connection LifeTime时: 它会破坏池化的连接 如果您打开连接的时间大于Connection LifeTime,则该连接无法使用。
如果您在服务器集群中没有连接,则建议使用Connection LifeTime。

1

更新:零值(0)会导致池化连接具有最大连接超时时间。

参考


这是不正确的。请看我的答案:https://dev59.com/ekjSa4cB1Zd3GeqPIMEj#3444881 - Redwood
我无法删除这个答案,因为它已被接受并且发布者已经两年没有出现了。 - Mitch Wheat

-1

这意味着没有连接超时时间。例如,如果设置为300,如果在此时间内查询未完成,比如因为有大量数据,将抛出超时异常。当设置为0时,它将一直工作直到查询完成。


这是不正确的。请查看我的答案:https://dev59.com/ekjSa4cB1Zd3GeqPIMEj#3444881 - Redwood

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接