используют эти методы:
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 за использование примеров кода)
Зависит от RDBMS. Необходимо сравнить планы выполнения относительно обоих запросов.
По моему опыту, с Oracle 10 и 11, планы выполнения всегда являются тем же.
Теоретически каждый подзапрос может быть изменен на запрос соединения.
Проблема с подзапросами состоит в том, что Вы могли бы закончить наличие поднабора результатов без любого ключа, так присоединение к ним будет более дорогим.
Если возможно, всегда пытайтесь сделать запросы СОЕДИНЕНИЯ и фильтр с НА пункте, вместо того, ГДЕ (хотя это должно быть то же, поскольку современные механизмы оптимизированы для этого).
Первый принцип является "Состоянием запрос точно". Второй принцип является "состоянием запрос просто и очевидно" (который является, где Вы обычно делаете выбор). Третьим является "состояние запрос, таким образом, это обработает эффективно".
Если это - DBMS с хорошим процессором запросов, эквивалентные проекты запроса должны, должен привести к планам запросов, которые являются тем же (или по крайней мере одинаково эффективный).
Мое самое большое разочарование после использования MySQL впервые состояло в том, насколько сознательный я должен был быть должен ожидать оптимизатор. После большого опыта с Oracle, SQL Server, Informix и другими продуктами DBMS, я очень редко ожидал интересоваться такими проблемами. Это лучше теперь с более новыми версиями MySQL, но это - все еще что-то, на что я заканчиваю тем, что должен был обратить внимание чаще, чем с другими.
Мудрый производительностью, у них нет различия в большинстве современных механизмов DB.
Давайте проигнорируем влияние производительности на данный момент (как мы должны, если мы знаем, что "Преждевременная оптимизация является корнем всего зла").
Выберите что взгляды, более ясные и легче поддержать.
Как со многими вещами, это зависит. - насколько сложный подзапрос - в запросе, как часто подзапрос выполняется
Я стараюсь избегать подзапросов каждый раз, когда я могу. Особенно, когда ожидание больших наборов результатов никогда не использует подзапросы - в случае, если подзапрос выполняется для каждого объекта набора результатов.
заботьтесь, Alex
В SQL Server связанный подзапрос обычно работает хуже, чем соединение или, часто еще лучше для производительности, соединения к полученной таблице. Я почти никогда не пишу подзапрос ни для чего, что должно будет быть выполнено многократно. Это вызвано тем, что связанные подзапросы часто в основном превращают Ваш запрос в курсор и выполняют одну строку за один раз. В базах данных обычно лучше сделать вещи основанным на наборе способом