В SO много похожих вопросов типа «Несколько запросов против одного запроса».
Но я не видел ни одного с общим выводом, поэтому я все еще смущен этим.
Итак, я спрошу об этом другими словами:
Когда лучше запускать несколько запросов вместо одного запроса с несколькими объединениями?
Я не спрашиваю о тривиальных случаях, очевидно, объединение двух или трех таблиц намного быстрее, чем выполнение трех запросов.
Я имею в виду, например, случаи, когда у вас есть 10+ объединений, и некоторые из этих объединений имеют отношение "многие ко многим", поэтому ваш последний запрос содержит GROUP_CONCAT, сочетание соединений LEFT и INNER и т. Д.1012 *
Например, вам нужно имя продукта 1015 *, а также все их изображения , а также все их теги , а также все их videos , а также все направления , где вы можете его купить.
Лучше сделать очень длинный запрос со сложными объединениями и group_concat (которым во многих случаях действительно сложно управлять, если выне может использовать различные) или выполнение запроса сведений о продукте, запроса изображений, другого запроса тегов и т. д. *
Я могу написать конкретный пример, если это поможет прояснить вопрос,Но я надеялся на общее правило для таких ситуаций.
Где предел?когда один запрос с объединениями хуже, чем несколько запросов?
, а также в тех случаях, когда лучше выполнять несколько запросов SELECT:
быстрее выполнять их внутри транзакции(autocommit = false)?
быстрее объединить эти множественные выборки в одном запросе с несколькими вложенными выборками?
Спасибо!