gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 03:54:47 25 4
gpt4 key购买 nike

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

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

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

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

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

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

客户 -> 契约(Contract) -> 计划 -> 广告

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

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

横幅 -> 横幅 channel -> 本地横幅

关于申请的信息:

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

最佳答案

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

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

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

但实际上,这可能非常糟糕,尤其是当您的应用程序和数据库不断增长时。关联模型的数量也会增加,递归地获取越来越多的数据。

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

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

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

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

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

关于php - 大型站点中的 CakePHP(1000 个用户/小时 - 84 个表)- 为什么这么慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10035834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com