Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
大型站点中的CakePHP(1000个用户/小时-84个表)-为什么这么慢?_Php_Mysql_Performance_Cakephp_Cakephp 2.0 - Fatal编程技术网

大型站点中的CakePHP(1000个用户/小时-84个表)-为什么这么慢?

大型站点中的CakePHP(1000个用户/小时-84个表)-为什么这么慢?,php,mysql,performance,cakephp,cakephp-2.0,Php,Mysql,Performance,Cakephp,Cakephp 2.0,我在用谷歌翻译 目前正在开发一个由30000辆车、10000名用户组成的系统,在此期间仅对当地环境进行测试 然后问题来了:当我发送到云服务器时,mysql现在消耗了100~140%的处理量,使其在5~30分钟内成为站点 我不知道如何解决这个问题,以便我无法识别他,因为在那之前,一切都在localhost上 我的问题是:如何使用CakePHP应用程序使系统过载到一定程度 有关表格的一些基本信息: 客户->合同->计划->广告 广告->车辆、零件、服务 车辆->品牌、型号、版本、类别、颜色、燃油 横

我在用谷歌翻译

目前正在开发一个由30000辆车、10000名用户组成的系统,在此期间仅对当地环境进行测试

然后问题来了:当我发送到云服务器时,mysql现在消耗了100~140%的处理量,使其在5~30分钟内成为站点

我不知道如何解决这个问题,以便我无法识别他,因为在那之前,一切都在localhost上

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

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

客户->合同->计划->广告

广告->车辆、零件、服务

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

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

有关申请的信息:

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

如果您真的想知道为什么它太慢,请执行此操作

装备以产生负载 启用分析您的web应用程序 也
如果您想让它快速阅读,请继续阅读如果您真的想知道它为什么太慢,请这样做

装备以产生负载 启用分析您的web应用程序 也
如果你想快速阅读

,根据我自己的经验,使用CakePHP和MySQL运行大型应用程序时会遇到250多个表,瓶颈在于CakePHP ORM的不当使用

有时,您将获取比需要多得多的数据

查找与高递归值关联的“all”函数看起来很酷,可以加快开发时间

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

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

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

在开发中,您应该在Config/core.php文件中启用CakePHP调试模式来评测SQL查询:Configure::write'debug',2;这将帮助您找到最慢的

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


此外,您应该在生产中使用操作码缓存,例如or。

根据我自己的经验,使用CakePHP和MySQL运行大量应用程序超过250个表。瓶颈在于CakePHP ORM的不当使用

有时,您将获取比需要多得多的数据

查找与高递归值关联的“all”函数看起来很酷,可以加快开发时间

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

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

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

在开发中,您应该在Config/core.php文件中启用CakePHP调试模式来评测SQL查询:Configure::write'debug',2;这将帮助您找到最慢的

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


此外,您应该在生产中使用操作码缓存,例如或。

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


@第54页->快速制作蛋糕应用程序

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


@第54页->使你的Cake应用程序快速

更不用说索引数据库、使用适当的DB引擎等。链接+1中提到了加载测试,这解决了我如何与LocalHost进行比较的问题。当我使用JMeter时,mysql消耗70~140%的CPU。Obs.:我更改了apache和mysql的所有配置,以支持500~1000个连接服务器=2核、4gb RAM、100gb HD、1tb传输/月。您是否使用任何类型的查询缓存?更不用说索引数据库、使用适当的数据库引擎等。链接+1中提到了加载测试,这就解决了当我使用JMeter时,mysql消耗了70~140%的CPU的问题。Obs.:我更改apache和mysql的所有配置,以支持500~1000个连接服务器=2核、4gb RAM、100gb HD、1tb传输/月。您是否使用任何类型的查询缓存?请查看ContaineableBehavior,它可以帮助您处理递归和模型绑定。+1您应该从var$recursive=-1开始;在每个模型中。这是我从未使用cake的主要原因之一。您不使用cake的主要原因之一是您必须优化对db/orm的使用这和f有什么不同
rom还有其他框架吗?我几乎陷入了所有框架的困境-请告诉我您使用了什么,而不需要对性能进行完全相同的考虑。调试、递归、缓存。。。所有这些属性都设置正确。至少检查了10次。事实上,我无法解决这个问题,更糟糕的是,一位“自由职业者”现在接管了这个项目,他说解决方案是使用Zend+Doctrine+Smarty,因为我不知道它是否会起作用。请查看ContaineableBehavior,它可以帮助您处理递归和模型绑定。+1您应该从var$recursive=-1开始;在每个模型中。这是我从未使用cake的主要原因之一。您不使用cake的主要原因之一是您必须优化对db/orm的使用这与任何其他框架有何不同?我几乎陷入了所有框架的困境-请告诉我您使用了什么,而不需要对性能进行完全相同的考虑。调试、递归、缓存。。。所有这些属性都设置正确。至少检查了10次。事实上,我无法解决问题,更糟糕的是,一名“自由职业者”正在接管该项目,他说解决方案是使用Zend+Doctrine+Smarty,因为我不知道它是否有效。谢谢我的朋友,我会阅读并测试,但现在,其他人负责该项目,这将使用Doctrine+Smarty+Zend,并将重做整个应用程序。谢谢我的朋友,我将阅读并测试它们,但现在,其他人负责该项目,这将使用Doctrine+Smarty+Zend,并将重做整个应用程序。