MYSQL 结构:多个数据库,每个数据库中具有相同的表,格式如下:
db1.a
db1.b
...
db2.a
db2.b
...
....
....等等
PHP 结构:
./includes/--> 包含常量的文件
./work/--> 与数据库交互的文件
main.php --> 检查请求类型并调用工作文件夹内文件中的函数
Android HTTP 请求和响应查询将使用 JSON 来访问该系统,并以相同的方式从数据库返回数据。 用于服务请求的代码将保持不变,只是数据库会根据用户而改变。
问题的关键在于 - 成千上万的用户将从 Android 应用程序发送请求到任何一个函数,该函数在单个请求中仅与特定数据库的 1 个表进行交互。本质上,每个请求中执行的代码将非常小,每个请求最多 2 或 3 个 db 查询。
我感觉我的解决方案在某种程度上是错误的。必须有某种方法来优化如此多的请求。
我将包含多个包含文件,其中包含每个请求的数组常量。这会导致响应延迟吗?我当前正在包含这些文件,创建包含常量的类对象并传递给所需的任何函数。将包含对象保留在 memcached 中会更快吗?将所有请求的对象保留在内存中的任何其他方法。 注意:如果我将包含常量保留为静态,代码会变得更加复杂,因为我必须在每个函数内将它们声明为全局的,这在以后处理起来会非常麻烦。
我读到人们使用某种框架或其他框架 - zend、symphony。使用这样的框架有什么好处?我是否有必要使用其中任何一个?
有没有办法让对象和数据库连接保持 session 状态,以便在给定的时间范围内,如果具有相同 session ID 的同一用户发出请求,每个 php 资源都会被重复使用?
里>
任何帮助将不胜感激。
最佳答案
你看起来很困惑。为什么知道您有一个名为“work”的文件夹对我们来说很重要?尝试尽可能精确 - 也许您自己也会找到解决方案。
回答您的问题:
必须有某种方法来优化如此多的请求。 当有这么多请求时,我想他们通常会得到相同的结果。这样您就可以缓存您的页面。
这只会导致最小的延迟。它是如此之小,您不会注意到它;)
您的项目越大,使用框架就越好。它简化了许多任务并帮助您构建项目。它会对性能产生影响。
是的,有一种方法可以序列化对象。但由于写入和读取数据也可能很慢(并且可能会引入新的软件错误),因此您应该只在真正大的事情上才这样做。你不能/不需要缓存 mysql 连接。当您使用 PDO 或 mysqli 时,它会自动为您完成。
如果您是初学者,您应该停止过多担心性能,而更多地担心代码/架构的质量。从长远来看,这更有帮助。 如果您必须在性能与可读性之间做出决定 - 总是更喜欢可读性:)
祝你的项目顺利
关于针对多个小请求的 PHP 资源优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22946854/