CakePHP和连接池

时间:2014-09-06 06:52:15

标签: php mysql cakephp connection-pooling

我正在开发一个需要同时为同一个表提供多个请求的网站。我们在CakePHP中创建了一个简单的索引页面,它从数据库中抽取了一些数据(准确地说是10行),同事执行了一个模拟同时查看同一页面的1000个用户的测试,这意味着将发出1000个相同的请求到数据库。问题是,在大约500个请求中,数据库停止响应,一切都冻结了,我们不得不杀死进程。

我想到的是,每个请求都是在自己的连接上执行的,这就解释了为什么MySQL服务器不堪重负。通过在线搜索和SO搜索,我可以看到PHP本身不支持连接池,例如可以在Java应用程序中完成。然而,基于CakePHP 2.5.3的应用程序,我想认为有一些潜在的机制可以克服这些限制。也许我没有做对吗?

欢迎提出任何建议,我只想确保用尽所有可能的解决方案。

1 个答案:

答案 0 :(得分:0)

如果每个查询的结果都相同,则可以缓存查询结果,然后它不会向数据库发送多个请求, 试试这个插件: - https://github.com/ndejong/CakephpAutocachePlugin