gpt4 book ai didi

针对多个小请求的 PHP 资源优化

转载 作者:行者123 更新时间:2023-11-30 00:25:06 25 4
gpt4 key购买 nike

MYSQL 结构:多个数据库,每个数据库中具有相同的表,格式如下:

db1.a
db1.b
...
db2.a
db2.b
...

....
....等等

PHP 结构:
./includes/--> 包含常量的文件
./work/--> 与数据库交互的文件
main.php --> 检查请求类型并调用工作文件夹内文件中的函数

Android HTTP 请求和响应查询将使用 JSON 来访问该系统,并以相同的方式从数据库返回数据。用于服务请求的代码将保持不变,只是数据库会根据用户而改变。

问题的关键在于 - 成千上万的用户将从 Android 应用程序发送请求到任何一个函数,该函数在单个请求中仅与特定数据库的 1 个表进行交互。本质上,每个请求中执行的代码将非常小,每个请求最多 2 或 3 个 db 查询。

我感觉我的解决方案在某种程度上是错误的。必须有某种方法来优化如此多的请求。

  1. 我将包含多个包含文件,其中包含每个请求的数组常量。这会导致响应延迟吗?我当前正在包含这些文件,创建包含常量的类对象并传递给所需的任何函数。将包含对象保留在 memcached 中会更快吗?将所有请求的对象保留在内存中的任何其他方法。注意:如果我将包含常量保留为静态,代码会变得更加复杂,因为我必须在每个函数内将它们声明为全局的,这在以后处理起来会非常麻烦。

  2. 我读到人们使用某种框架或其他框架 - zend、symphony。使用这样的框架有什么好处?我是否有必要使用其中任何一个?

  3. 有没有办法让对象和数据库连接保持 session 状态,以便在给定的时间范围内,如果具有相同 session ID 的同一用户发出请求,每个 php 资源都会被重复使用?

任何帮助将不胜感激。

最佳答案

你看起来很困惑。为什么知道您有一个名为“work”的文件夹对我们来说很重要?尝试尽可能精确 - 也许您自己也会找到解决方案。

回答您的问题:

  1. 必须有某种方法来优化如此多的请求。当有这么多请求时,我想他们通常会得到相同的结果。这样您就可以缓存您的页面。

  2. 这只会导致最小的延迟。它是如此之小,您不会注意到它;)

  3. 您的项目越大,使用框架就越好。它简化了许多任务并帮助您构建项目。它会对性能产生影响。

  4. 是的,有一种方法可以序列化对象。但由于写入和读取数据也可能很慢(并且可能会引入新的软件错误),因此您应该只在真正大的事情上才这样做。你不能/不需要缓存 mysql 连接。当您使用 PDO 或 mysqli 时,它会自动为您完成。

如果您是初学者,您应该停止过多担心性能,而更多地担心代码/架构的质量。从长远来看,这更有帮助。如果您必须在性能与可读性之间做出决定 - 总是更喜欢可读性:)

祝你的项目顺利

关于针对多个小请求的 PHP 资源优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22946854/

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