php - 服务器端 SQL 包含

标签 php mysql performance include

这是这个问题的 php 版本 server-side SQL library

是否有一个库可以将 sql 分解为完全服务器端逻辑?

作为一个例子,考虑这个基本查询SELECT table1column1, table2column1 FROM table1, table2 WHERE table1.id = 1 AND table2.table1id = table1.id;,它比分解 慢约 5 倍code>SELECT 到 2 个 SELECT 中,假设 table2.table1id 不是 PRIMARY

我想要一个库,在这种情况下,它就是这样做的,将单个查询分成两个。它不必解析 sql 来了解人们想要什么,而是最好采用这种格式 basicJoin($table1columnsList, $table2columnsList, $table1name, $table2name, $table1id, $table2table1idColumnName).

这个函数会

  1. SELECT 根据 $table1id(PRIMARY)指定到数组中的 table1
  2. SELECT 所有 table2 ID(table2PRIMARY)和 table1id s 到一个数组中并找到正确的 table2 id
  3. 使用上面的table2 ID来SELECT指定到数组(或table1)中的table2列数组)

在 php 中处理我的逻辑只会大大减少处理延迟和处理延迟峰值,但编写所有这些逻辑非常乏味。

它已经存在了吗?如果是的话,在哪里?

非常感谢!

最佳答案

如果您热衷于 OOP,可以使用 Propel - http://propelorm.org/它处理所有逻辑并为您提供诸如 joinWith()getThis()setThat()save()< 等方法.

看来 Propel 确实将查询分开,因此它可以提供多个可以单独保存的对象。

关于php - 服务器端 SQL 包含,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14801768/

相关文章:

php - 将 Laravel 5.4 升级到最新版本 (5.7)

javascript - 如何使用 httpwebrequest 在 C# 中获取网页(使用 ajax/javascript 的 php)的最终响应

mysql - 使用 SQL 创建 WooCommerce 分析报告

mysql - nodejs mysql bulk INSERT on DUPLICATE KEY UPDATE

javascript - 60fps : How to use requestAnimationFrame the right way?

performance - EBP帧指针寄存器的用途是什么?

c - 存储更多 bool 值的最有效方法

php - 使用 LIKE 检查多个 MySQL 列与单个值

php - Symfony2 : How to use constraints on custom compound form type?

mysql - ASP/MySQL - 参数化查询