Запрос соединения или подзапрос

используют эти методы:

  • update.message.send_animation()
  • bot.send_animation()
  • bot.edit_message_media()

Например: [ 118]

def start(bot, update):
    gif_link='https://media.giphy.com/media/yFQ0ywscgobJK/giphy.gif'
    update.message.reply_animation(
        animation=gif_link,
        caption=main_menu_message(),
        reply_markup=main_menu_keyboard(),
        parse_mode=ParseMode.MARKDOWN
    )

upd: @ amir-a-shabani спасибо за издание и спасибо @ david-kha за использование примеров кода)

5
задан SunnyRed 27 September 2011 в 14:40
поделиться

8 ответов

Зависит от RDBMS. Необходимо сравнить планы выполнения относительно обоих запросов.

По моему опыту, с Oracle 10 и 11, планы выполнения всегда являются тем же.

2
ответ дан 18 December 2019 в 07:56
поделиться

Теоретически каждый подзапрос может быть изменен на запрос соединения.

2
ответ дан 18 December 2019 в 07:56
поделиться

Проблема с подзапросами состоит в том, что Вы могли бы закончить наличие поднабора результатов без любого ключа, так присоединение к ним будет более дорогим.

Если возможно, всегда пытайтесь сделать запросы СОЕДИНЕНИЯ и фильтр с НА пункте, вместо того, ГДЕ (хотя это должно быть то же, поскольку современные механизмы оптимизированы для этого).

3
ответ дан 18 December 2019 в 07:56
поделиться

Первый принцип является "Состоянием запрос точно". Второй принцип является "состоянием запрос просто и очевидно" (который является, где Вы обычно делаете выбор). Третьим является "состояние запрос, таким образом, это обработает эффективно".

Если это - DBMS с хорошим процессором запросов, эквивалентные проекты запроса должны, должен привести к планам запросов, которые являются тем же (или по крайней мере одинаково эффективный).

Мое самое большое разочарование после использования MySQL впервые состояло в том, насколько сознательный я должен был быть должен ожидать оптимизатор. После большого опыта с Oracle, SQL Server, Informix и другими продуктами DBMS, я очень редко ожидал интересоваться такими проблемами. Это лучше теперь с более новыми версиями MySQL, но это - все еще что-то, на что я заканчиваю тем, что должен был обратить внимание чаще, чем с другими.

5
ответ дан 18 December 2019 в 07:56
поделиться

Мудрый производительностью, у них нет различия в большинстве современных механизмов DB.

3
ответ дан 18 December 2019 в 07:56
поделиться

Давайте проигнорируем влияние производительности на данный момент (как мы должны, если мы знаем, что "Преждевременная оптимизация является корнем всего зла").

Выберите что взгляды, более ясные и легче поддержать.

2
ответ дан 18 December 2019 в 07:56
поделиться

Как со многими вещами, это зависит. - насколько сложный подзапрос - в запросе, как часто подзапрос выполняется

Я стараюсь избегать подзапросов каждый раз, когда я могу. Особенно, когда ожидание больших наборов результатов никогда не использует подзапросы - в случае, если подзапрос выполняется для каждого объекта набора результатов.

заботьтесь, Alex

2
ответ дан 18 December 2019 в 07:56
поделиться

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

1
ответ дан 18 December 2019 в 07:56
поделиться
Другие вопросы по тегам:

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