Это миф, который объединяет замедляющее программное обеспечение, точно так же, как миф об утверждении циклов записи в прикладном коде замедляющего программного обеспечения.
Я имею в виду, зачем писать цикл? Это просто запускает одни и те же строки кода снова и снова! Разве не было достаточно один раз? Это огромная трата!
Вышеприведенные высказывания предназначены для иронии.
Суть в том, что запрос содержит соединение с целью: получить правильный ответ. Использование объединений неэффективно или излишне - это, конечно, плохой дизайн, такой как помещение инвариантного в цикл кода внутри цикла.
Избегание объединений в качестве общей политики - пример преждевременной оптимизации . Если ваш подход к написанию эффективного кода состоит в том, чтобы придумать общие правила, подобные этим, то отказ от объединений вам не поможет.
Что касается Google App Engine, он поддерживает отношения между сущностями, но поскольку это не строго модель реляционной базы данных, концепция объединения на самом деле не подходит. Вместо этого вы можете получить связанные сущности из заданной ссылки, которая больше похожа на интерфейс ORM для модели, но это не то же самое, что объединение в SQL.
Вы можете прочитать больше здесь:
http://code.google.com/appengine/articles/modeling.html
(эта ссылка была в другом ответе в этой теме, но была удалена)