你应该在PHP中缓存MySQL连接吗?

Kau*_*eel 1 php mysql mysqli caching

缓存MySQL连接有什么缺点吗?

例如,

$mysqli = new mysqli(params);
apc_store('mysqli', $mysqli);
Run Code Online (Sandbox Code Playgroud)

如果您网站上有很多用户都需要连接,这可以节省一些时间.而不是为每个用户打开连接,为什么不缓存它?

我没有通过谷歌搜索找到任何东西,所以只是想知道我是否错过了什么.

谢谢你的时间.

Bil*_*win 5

mysqli对象不是你可以缓存的东西.它是一种资源,而不是一个普通的对象.

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

此外,当您从缓存中取出数据库服务器时,无法保证数据库服务器仍然可用.

并且多个PHP请求无法共享相同的缓存资源.这个计划存在各种各样的问题.

您的目标是什么是持久的mysqli连接,因此PHP运行时环境维护了一些连接,并且可以将它们从一个PHP请求重用到下一个.