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

针对多个小请求的PHP资源优化,php,mysql,Php,Mysql,MYSQL结构:多个数据库在每个数据库中具有相同的表,格式如下: db1.a db1.b ... db2.a db2.b ... .... .... 等等 PHP结构: ./includes/-->包含常量的文件 ./work/-->用于与db交互的文件 main.php-->检查工作文件夹内文件中请求和调用函数的类型 Android HTTP请求和响应查询将使用JSON访问该系统,并以相同的方式从数据库返回数据。 为请求提供服务的代码将保持不变,但数据库将根据用户的不同而变化 问

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

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

....
.... 等等

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

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

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

我觉得我的解决方案在某种程度上是错误的。一定有办法优化这么多请求

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

  • 我读过一些关于人们使用某种框架的文章——zend,symphony。使用这样一个框架有什么好处?我有必要使用其中的任何一个吗

  • 是否有一种方法可以将对象和数据库连接保持在会话中,以便在给定的时间范围内,如果具有相同会话id的同一用户发出请求,则每个php资源都会被重新使用


  • 任何帮助都将不胜感激。

    你似乎很困惑。为什么重要的是让我们知道,你有一个名为“工作”的文件夹?尽量做到精确——也许你自己也能看到解决方案

    回答您的问题:

  • 一定有办法优化这么多请求。 当有这么多的请求时,我想他们通常会得到相同的结果。所以你可以缓存你的页面

  • 这将导致最小的延迟。它是如此之小以至于你不会注意到;)

  • 项目越大,使用框架就越好。它简化了许多任务,并帮助您组织项目。它对性能有影响

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

  • 如果你是一个初学者,你应该停止担心太多的性能,更多地担心你的代码/架构的质量。。从长远来看,这更有帮助。 如果您必须决定性能与可读性,请始终选择可读性:)

    祝你的项目好运