она 10+ секунд то как лучше её использовать в коде бота? Создавать таск?
Если она синхронная, то запускай в процесс пуле
я могу сделать её как синхронной так и асинхронной
Нет, не можешь Определив функцию через async def, ты не сделаешь её асинхронной
Это я уже понял, просто у меня там был кусок асинхронной работы с бд, а сама функция довольно быстрая
Ты же сказал 10 секунд
Как оказалось 7 секунд это на бд 🌚
Вынес всё говно с функции и теперь создается за 2-3 секунды, еще вместо кучи запросов сделал парочку а дальше уже сортировку питоном
Всё-таки order by лучше делать сразу в запросе к бд "You need to sort in the database, so re-sorting in python is largely irrelevant – but if you do that, it will likely be negligible." https://groups.google.com/g/sqlalchemy/c/G1EnhodQ2gA?pli=1
Напомнило как кое-кто дёргает таблицы из бд и делает джоины на клиенте. Не ну а хули, у клиентов повально памяти полно, ядер тоже, на сеть вообще похуй
Ужасно Как раз таки подобное и надо делать сразу в SQL Ты, вместо того, чтобы получить конкретные данные, селектишь всё в память и потом уже итерируешься по всему в питоне Ничего не смущает?
ну я не знаю как это всё за один запрос получить, а если много запросов то очень долго
Я же достаю мизерные данные
И это тебя оправдывает? Делай как хочешь
Я не против если ты предложишь вариант лучше
Если это пара сотен строк - ок, разница небольшая Просто обычно с тайм метками достают что-то из истории, где миллионы данных
Я же тебе сказал, что нужно сделать
ну так всё то что я достал я использую, просто за один запрос
Тогда, если ты уверен, что в будущем не будешь эту функцию использовать в больших таблицах, или что нынешняя таблица не разрастется, то ок Но в идеале бы это написать нормально
Доставать нужно из бд только нужные данные, а не все
ну мне надо выборка за 30 дней, я и достал 30 записей
Обсуждают сегодня