Я должен использовать один большой оператор SQL Select или несколько маленьких?

Короткий вариант

    var browser = (function(agent){
        switch(true){
            case agent.indexOf("edge") > -1: return "edge";
            case agent.indexOf("opr") > -1 && !!window.opr: return "opera";
            case agent.indexOf("chrome") > -1 && !!window.chrome: return "chrome";
            case agent.indexOf("trident") > -1: return "ie";
            case agent.indexOf("firefox") > -1: return "firefox";
            case agent.indexOf("safari") > -1: return "safari";
            default: return "other";
        }
    })(window.navigator.userAgent.toLowerCase());
16
задан k0pernikus 1 February 2016 в 16:38
поделиться

7 ответов

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

Удостоверяются, что Вы фильтруете вещи, а также Вы можете с помощью Вашего, где и присоединяются на пунктах.

, Но честно, это обычно не имеет значения, так как Вы, вероятно, не собираетесь поражаться все, что трудно по сравнению с тем, что база данных может сделать, поэтому если оптимизация не является Вашей спецификацией, Вы не должны делать этого преждевременно и делать то, что является самым простым.

17
ответ дан 30 November 2019 в 16:59
поделиться

Когда вы используете JOIN вместо нескольких запросов, вы разрешаете базе данных применять ее оптимизации. Вы также потенциально получаете строки, которые вам не нужны (если вы должны заменить INNER объединение несколькими вариантами выбора), что увеличивает сетевой трафик между вашим сервером приложений и сервером базы данных. Даже если они находятся в одной коробке, это важно.

5
ответ дан 30 November 2019 в 16:59
поделиться

Обычно лучше иметь один оператор SELECT. Одна из главных причин иметь базы данных - то, что они быстры при обработке информации, особенно если это находится в формате запроса.

, Если существует недостаток к этому подходу, случается так, что существуют некоторые виды анализа, который Вы не можете сделать с одним большим оператором SELECT. Пуристы RDBMS настоят, что это - проблема проектирования баз данных, в этом случае Вы вернулись к моему исходному предложению.

4
ответ дан 30 November 2019 в 16:59
поделиться

Это могло бы зависеть от того, что Вы делаете с данными после выборки его от DB. Если бы Вы используете каждый из четырех результатов независимо, то это было бы более логичным и ясным иметь четыре отдельных оператора SELECT. С другой стороны, если Вы используете все данные вместе, любите создавать объединенную строку в таблице или чем-то, тогда я пошел бы с единственным ВЫБОРОМ и СОЕДИНЕНИЯМИ.

я сделал немного работы PHP/MySQL, и я нахожу, что даже для запросов на огромных таблицах с тоннами СОЕДИНЕНИЙ, база данных довольно хороша в оптимизации - если у Вас есть умные индексы. Таким образом, если Вы серьезно относитесь к производительности, запускаете чтение на оптимизация запросов и индексация .

4
ответ дан 30 November 2019 в 16:59
поделиться

Я сказал бы 1 запрос с соединением. Таким образом, необходимо поразить сервер только однажды. И если к Вашим таблицам присоединяются с индексами, это должно быть быстро.

2
ответ дан 30 November 2019 в 16:59
поделиться

Хорошо, в Oracle вы захотите воспользоваться преимуществами кэширования запросов, и если у вас есть много небольших запросов, которые вы делаете в своей последовательной обработке, было бы плохо, если последний запрос вытолкнул первый из кэша. ... как раз вовремя, чтобы вы могли выполнить цикл и снова выполнить этот первый запрос (очевидно, с другими значениями параметров) на следующем проходе.

Мы создавали выходной XML-файл с использованием хранимых процедур Java и определенно обнаружили, что время прохождения туда-обратно каждого отдельного запроса пожирает нас живьем. Мы обнаружили, что гораздо быстрее собрать все данные в минимально возможном количестве запросов, а затем подключить эти значения в XML DOM по мере необходимости.

Единственным недостатком является то, что код Java был немного менее элегантным, так как выборка данных была теперь удалена от его использования. Но мы должны были сгенерировать большой сложный XML-файл как можно ближе к нулю, поэтому нам пришлось оптимизировать скорость.

2
ответ дан 30 November 2019 в 16:59
поделиться

Будьте осторожны при контакте с таблицей слияния как бы то ни было. Это был мой опыт, что, хотя единственное соединение может быть хорошим в большинстве ситуаций, когда таблицы слияния включены, можно столкнуться со странными ситуациями.

1
ответ дан 30 November 2019 в 16:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: