Когда лучше использовать несколько запросов вместо нескольких объединений?

В SO много похожих вопросов типа «Несколько запросов против одного запроса».
Но я не видел ни одного с общим выводом, поэтому я все еще в замешательстве.

Итак, я спрошу это другими словами:

Когда лучше выполнять несколько запросов вместо одного запроса с несколькими соединениями?

Я не прошу тривиальных случаев, очевидно, объединение двух или 3 таблицы намного быстрее, чем выполнение 3 запросов.

Я думаю о случаях, например, когда у вас есть 10+ объединений, и некоторые из этих объединений имеют много отношений, поэтому в вашем последнем запросе есть GROUP_CONCAT, сочетание соединений LEFT и INNER и т. Д.

Например, вам нужно название продукта , а также все его изображения , а также все их теги , а также все их видео. , а также все направления , где его можно купить.
Лучше сделать очень длинный запрос со сложными соединениями и group_concat (которым очень сложно управлять, если вы не можете использовать отдельный), или выполнить запрос для сведений о продукте, запрос для изображений, еще один для теги и т. д.?

Я могу написать конкретный пример, если это поможет прояснить вопрос. Но я надеялся на общее правило для этой ситуации.
Где предел? когда один запрос с объединениями хуже, чем несколько запросов?

а также в тех случаях, когда лучше выполнять несколько запросов SELECT:
быстрее запускать их внутри транзакции (autocommit = false)?
быстрее ли объединить эти множественные выборки в одном запросе с множественными подзапросами?

Спасибо!

5
задан Enrique 7 December 2011 в 14:32
поделиться