是否应该在PHP中缓存MySQL连接?

是否应该在PHP中缓存MySQL连接?,php,mysql,caching,mysqli,Php,Mysql,Caching,Mysqli,缓存MySQL连接有什么缺点吗 比如说, $mysqli = new mysqli(params); apc_store('mysqli', $mysqli); 如果您的站点上有很多用户都需要连接,这将节省一些时间。与其为每个用户打开连接,为什么不缓存它 我在谷歌上找不到任何东西,只是想知道我是否错过了什么 谢谢您的时间。mysqli对象不是您可以缓存的对象。它是一种资源,而不是普通的对象 将其从缓存中取出需要重新连接到数据库服务器,这意味着缓存版本需要以明文形式存储密码,如果您可以缓存密码,

缓存MySQL连接有什么缺点吗

比如说,

$mysqli = new mysqli(params);
apc_store('mysqli', $mysqli);
如果您的站点上有很多用户都需要连接,这将节省一些时间。与其为每个用户打开连接,为什么不缓存它

我在谷歌上找不到任何东西,只是想知道我是否错过了什么


谢谢您的时间。

mysqli对象不是您可以缓存的对象。它是一种资源,而不是普通的对象

将其从缓存中取出需要重新连接到数据库服务器,这意味着缓存版本需要以明文形式存储密码,如果您可以缓存密码,这将成为一个安全漏洞

此外,也不能保证数据库服务器在从缓存中取出时仍然可用

多个PHP请求无法共享同一个缓存资源。这个计划有各种各样的问题


您的目标的解决方案是,PHP运行时环境维护一定数量的连接,并可以在一个PHP请求到下一个PHP请求之间重用它们。

mysqli对象不是您可以缓存的对象。它是一种资源,而不是普通的对象

将其从缓存中取出需要重新连接到数据库服务器,这意味着缓存版本需要以明文形式存储密码,如果您可以缓存密码,这将成为一个安全漏洞

此外,也不能保证数据库服务器在从缓存中取出时仍然可用

多个PHP请求无法共享同一个缓存资源。这个计划有各种各样的问题


您的目标的解决方案是,PHP运行时环境维护一定数量的连接,并且可以在一个PHP请求到下一个PHP请求之间重复使用它们。

请参阅@Barmar,这将涉及为每个用户保持连接打开,这对于大量用户来说是低效的。不可能缓存
MySQLi
连接。即使有可能,每次从缓存中检索连接时,连接仍必须连接(APC缓存的内容是序列化的,需要调用
\u wakeup()
来重新建立连接)。换句话说,这样做没有任何好处。请参阅@Barmar,这将涉及为每个用户保持连接打开,这对于大量用户来说是低效的。不可能缓存
MySQLi
连接。即使有可能,每次从缓存中检索连接时,连接仍必须连接(APC缓存的内容是序列化的,需要调用
\u wakeup()
来重新建立连接)。换句话说,这样做没有好处。