首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大型站点的CakePHP (1,000个用户/小时- 84个表)-为什么这么慢?

大型站点的CakePHP (1,000个用户/小时- 84个表)-为什么这么慢?
EN

Stack Overflow用户
提问于 2012-04-06 04:51:35
回答 3查看 2.7K关注 0票数 1

(我正在使用谷歌翻译)。

目前正在开发一个车辆系统(30,000辆车,10,000个用户),在此期间只在当地环境中进行测试。

然后问题来了:当我发送到云服务器时,mysql现在消耗了100 %~ 140%的处理,使它的网站在5到30分钟内崩溃。

我不知道如何解决这个问题,以便我不能识别他,因为在此之前,一切都在本地主机上。

我的问题是:如何使用CakePHP应用程序使系统超载到一定程度?

有关这些表的一些基本信息:

Customers -> contract ->计划->广告

ads -> (车辆、零部件、服务)

车辆-> (品牌、型号、版本、类别、颜色、燃料)

横幅->横幅频道->本地横幅

有关应用程序的信息:

调试:0缓存启用(每页10-1小时*)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-06 06:34:17

根据我自己使用CakePHP和MySQL (超过250个表)运行繁重应用程序的经验,瓶颈在于对CakePHP ORM的错误使用。

有时,您会获取比所需更多的数据。

与高recursive值关联的find('all')函数看起来很酷,并加快了开发时间。

但事实上,这可能真的很糟糕,特别是当你的应用程序和数据库在增长的时候。相关模型的数量也将增长,递归地获取越来越多的数据。

一种好的做法是始终指定所需的字段。此外,对于特定的查询,您应该取消绑定不需要的关联模型。

对于复杂的查询,请毫不犹豫地使用query()函数手动编写优化的查询。

在开发过程中,您应该启用SQL模式来分析Config/core.php文件中的CakePHP查询:Configure::write('debug', 2);这将帮助您找到最慢的查询。

优化查询是第一步。如果这不能解决您的问题,那么您的数据库可能设计得不好。

此外,您应该在生产环境中使用操作码缓存,例如APCXCache

票数 5
EN

Stack Overflow用户

发布于 2012-04-06 04:57:50

如果你真的想知道为什么它太慢了,就这么做吧,

  1. Equip Apache JMeter to generate the load
  2. Enable profiling your web app by xdebug
  3. Profile your web server too。

如果你想在Tactics for using PHP in a high-load site上快速阅读

票数 2
EN

Stack Overflow用户

发布于 2012-04-06 14:25:04

马特·库里的这本书可能会有所帮助:

http://www.pseudocoder.com/Super_Awesome_Advanced_CakePHP_Tips.pdf

@ Page 54 ->“让你的蛋糕应用更快”

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10035834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档