php - 重用 MySQL 结果

标签 php mysql theory application-design

我有一些理论性的问题:我正在设计我自己的 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 函数 - 如果我能够重用结果!

例如,如果 $sqlSELECT * FROM POSTS LIMIT 10 并且 $sql2SELECT * FROM POSTS LIMIT 5,是否可以对 PHP 进行编程以查看:“啊,这是相同的 SQL,我将只调用一次并重用前 5 行”?

或者是否可以将此行为添加到某些 DRM 中?

然而,正如标签所说,这仍然只是一个正在进行的想法。如果它被证明很容易完成,那么我会发布更多问题如何:)

所以,基本上:是否可能,是否有意义?如果两者都是肯定的,那么......有什么想法吗?

最佳答案

不要误会我的意思,这听起来像是一个似是而非的想法,您或许可以让它运行起来。但我想知道它是否真的会有益。它会导致系统更快吗?给你更多的控制权?让开发更简单?

我只会考虑使用(或构建)一个使用良好实践的 MVC 样式编码标准的系统,构建一个良好的数据库结构,并调整 Apache(或使用类似 Lighttpd 的东西)。如果您决定将代码开源,您的代码将得到更广泛的接受,如果您需要帮助它,另一个开发人员可以直接介入并拿起键盘。

此外,请检查 MySQL 中的查询缓存——您会看到在查询示例中缓存查询结果服务器端的类似(尽管不是一对一)好处。更好的是,它存储在服务器内存中,这样 PHP/MySQL 开销就减少了,而且您不必对其进行编码。

除此之外,我确实认为这是可能的。 =)

关于php - 重用 MySQL 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2187460/

相关文章:

php - 我有逗号分隔的列,需要在 mysql 中从它们中获取最常见的值

php - 下拉列表仅显示单个值我的数据库中有多个值

Mysql临时表语法

php - 将 D3.js 与 symfony2 一起使用

mysql - 在数据库中表示三项选择的最佳方式是什么?

floating-point - 为什么 double 会像他们那样工作

javascript - 为什么 eval() 代码中的语法错误被忽略?

java - Java 可以通过用户输入进行 self 修改吗?

php - Yii Framework 2.0 -findModel 返回一个空对象

php - php 中的 session 变量