服务器端SQL包含

时间:2013-02-10 19:37:11

标签: 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;比将SELECT分解为SELECT SELECT PRIMARY table2.table1id慢约5倍对于两者,假设PRIMARY不是basicJoin($table1columnsList, $table2columnsList, $table1name, $table2name, $table1id, $table2table1idColumnName)

我想要一个库,在这种情况下,就是这样,将单个查询分解为两个。它不需要解析sql来理解你想要什么,而不是像这种格式SELECT那样最好。

此功能

  1. table1基于$table1idPRIMARY
  2. 指定到数组中的SELECT
  3. table2所有table2 ID(PRIMARY的{​​{1}})和table1id成为一个数组并找到正确的table2 id < / LI>
  4. 使用上面的table2 id到SELECT指定到数组(或table2数组中)的table1
  5. 在php中处理我的逻辑只会大大减少处理延迟和处理滞后峰值,但写出所有这些逻辑是很乏味的。

    它已经存在吗?如果是这样,在哪里?

    非常感谢提前!

1 个答案:

答案 0 :(得分:1)

如果你进入OOP,那就是Propel - http://propelorm.org/它处理所有逻辑并为你提供joinWith()getThis()setThat()save()等方法

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