(我正在使用谷歌翻译)。
目前正在开发一个车辆系统(30,000辆车,10,000个用户),在此期间只在当地环境中进行测试。
然后问题来了:当我发送到云服务器时,mysql现在消耗了100 %~ 140%的处理,使它的网站在5到30分钟内崩溃。
我不知道如何解决这个问题,以便我不能识别他,因为在此之前,一切都在本地主机上。
我的问题是:如何使用CakePHP应用程序使系统超载到一定程度?
有关这些表的一些基本信息:
Customers -> contract ->计划->广告
ads -> (车辆、零部件、服务)
车辆-> (品牌、型号、版本、类别、颜色、燃料)
横幅->横幅频道->本地横幅
有关应用程序的信息:
调试:0缓存启用(每页10-1小时*)
发布于 2012-04-06 06:34:17
根据我自己使用CakePHP和MySQL (超过250个表)运行繁重应用程序的经验,瓶颈在于对CakePHP ORM的错误使用。
有时,您会获取比所需更多的数据。
与高recursive值关联的find('all')函数看起来很酷,并加快了开发时间。
但事实上,这可能真的很糟糕,特别是当你的应用程序和数据库在增长的时候。相关模型的数量也将增长,递归地获取越来越多的数据。
一种好的做法是始终指定所需的字段。此外,对于特定的查询,您应该取消绑定不需要的关联模型。
对于复杂的查询,请毫不犹豫地使用query()函数手动编写优化的查询。
在开发过程中,您应该启用SQL模式来分析Config/core.php文件中的CakePHP查询:Configure::write('debug', 2);这将帮助您找到最慢的查询。
优化查询是第一步。如果这不能解决您的问题,那么您的数据库可能设计得不好。
此外,您应该在生产环境中使用操作码缓存,例如APC或XCache。
发布于 2012-04-06 04:57:50
如果你真的想知道为什么它太慢了,就这么做吧,
发布于 2012-04-06 14:25:04
马特·库里的这本书可能会有所帮助:
http://www.pseudocoder.com/Super_Awesome_Advanced_CakePHP_Tips.pdf
@ Page 54 ->“让你的蛋糕应用更快”
https://stackoverflow.com/questions/10035834
复制相似问题