缓存MySQL连接有什么缺点吗?
例如,
$mysqli = new mysqli(params);
apc_store('mysqli', $mysqli);
如果你的网站上有很多用户都需要连接,这将节省一些时间。与其为每个用户打开一个连接,为什么不缓存它呢?
我在谷歌上没有找到任何东西,只是想知道我是否错过了什么。
谢谢你抽出时间。
mysqli对象不是可以缓存的对象。它是资源,而不是普通对象。
从缓存中取出它需要重新连接到数据库服务器,这意味着缓存版本需要以明文形式存储密码,如果可以缓存,这将是一个安全缺陷。
此外,当您从缓存中取出数据库服务器时,也不能保证它仍然可用。
而且多个PHP请求无法共享同一个缓存资源。这个计划有各种各样的问题。
实现目标的解决方案是持久的mysqli连接,因此PHP运行时环境维护一定数量的连接,并可以在一个PHP请求到下一个请求之间重用它们。