我有一些理论性的问题:我正在设计我自己的 CMS/应用程序框架(就像许多不同级别的 PHP 程序员以前所做的......并且永远都会)来制作生产就绪的解决方案或开发各种模块/我稍后会用到的插件。
无论如何,我正在考虑从整个应用程序收集 SQL 连接,然后在一个地方运行它们:
index.php:
<?php
include ('latestposts.php');
include ('sidebar.php');
?>
latestposts.php:
<?php
function gather_data ($arg){ $sql= ""; }
function draw ($data) {...}
?>
sidebar.php:
<?php
function gather_data ($arg){ $sql= ""; }
function draw ($data) {...}
?>
现在,虽然整个模块系统应用程序尚未构思,但它的想法已经浮现在我脑海中的某个地方。但是,我在想,如果我能够首先加载所有 gather_data
函数,然后运行 sql 然后运行 draw
函数 - 如果我能够重用结果!
例如,如果 $sql
是 SELECT * FROM POSTS LIMIT 10
并且 $sql2
是 SELECT * FROM POSTS LIMIT 5
,是否可以对 PHP 进行编程以查看:“啊,这是相同的 SQL,我将只调用一次并重用前 5 行”?
或者是否可以将此行为添加到某些 DRM 中?
然而,正如标签所说,这仍然只是一个正在进行的想法。如果它被证明很容易完成,那么我会发布更多问题如何:)
所以,基本上:是否可能,是否有意义?如果两者都是肯定的,那么......有什么想法吗?
最佳答案
不要误会我的意思,这听起来像是一个似是而非的想法,您或许可以让它运行起来。但我想知道它是否真的会有益。它会导致系统更快吗?给你更多的控制权?让开发更简单?
我只会考虑使用(或构建)一个使用良好实践的 MVC 样式编码标准的系统,构建一个良好的数据库结构,并调整 Apache(或使用类似 Lighttpd 的东西)。如果您决定将代码开源,您的代码将得到更广泛的接受,如果您需要帮助它,另一个开发人员可以直接介入并拿起键盘。
此外,请检查 MySQL 中的查询缓存——您会看到在查询示例中缓存查询结果服务器端的类似(尽管不是一对一)好处。更好的是,它存储在服务器内存中,这样 PHP/MySQL 开销就减少了,而且您不必对其进行编码。
除此之外,我确实认为这是可能的。 =)
关于php - 重用 MySQL 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2187460/