NotORM的连接与多个选择

时间:2012-10-13 18:36:33

标签: mysql sql notorm

我正在查看这个名为NotORM的PHP DB库,在阅读其文档后,我已经了解了它在连接上的立场。该参数基本上是单个SQL查询的性能,使用连接与使用多个选择查询,然后在数据库抽象层中交叉引用结果。

我一直都知道单个查询应该总是比使用多个查询更好,因此NotORM的想法对我来说是新的。我也不确定这是因为只有在NotORM中才能看到这个“功能”。

我想问你们有关这方面的意见。

哪种查询更好更快?

此...

SELECT application.*, tag.*
    FROM application
    LEFT JOIN application_tag ON application.id = application_tag.application_id
    LEFT JOIN tag ON application_tag.tag_id = tag.id
    ORDER BY application.id

...对比

SELECT * FROM application LIMIT 4;
SELECT * FROM application_tag WHERE application_id IN ('1', '2', '3', '4');
SELECT * FROM tag WHERE id IN ('21', '22', '23', '24');

第二种方法真的很实用吗?

1 个答案:

答案 0 :(得分:1)

我希望单个查询更快一些。但是将取决于php和MySQL之间的通信。当我尝试对其进行基准测试时,仅仅为了进行查询而产生了明显的开销(无论多么简单)。

但是,如果查询过于复杂,您就会遇到难以维护的问题。

如果您尝试使用任何自定义过程,则会出现另一个问题。例如,我需要根据Levenshtein距离进行一些处理(即,类似的单词是多少)。我发现的MySQL函数比检索数据和使用PHP Levenshtein函数处理要慢。