Python vs. MySQL
Друзья, вопрос чисто теоретический. Самого скрипта нет, поэтому показать не могу.
Итак, допустим, есть скрипт на Пайтон, использующий данные из базы на MySQL. Есть два варианта выборки из базы: силами Пайтон (получить все данные и использовать подходящие под критерии) и силами SQL (получить только подходящие под критерии данные). Какой вариант предпочтительнее?
Чем меньше данных тянется из базы - тем лучше. Это означает:
1. потребуется меньше оперативной памяти на копирование меньшего количества данных из базы в приложение;
2. меньше сетевой нагрузки при пересылке данных между сервером БД и приложением (помноженное на количество инстансов). Даже если БД и приложение находятся на одной физической машине - это уже узкрое место, а уж если физические сервера разные...;
3. меньше процессорной нагрузки на маппинг объектов из строк базы в питонячьи классы, которые все равно будут отфильтрованы;
4. меньше объектов понадобится - меньше нагрузка на GC, который сможет реже и быстрее освобождать память, останавливая приложение;
5. короче взаимодействие с базой - позже исчерпается пул соединений с базой - больше нагрузка, которую сможет выдержать приложение - дешевле поддержка.
... и чем больше данных в базе, тем разница будет драматичнее. Речь может идти о перекачивании гигабайт данных на каждый запрос.
Что касается производительности самого запроса: у базы больше пространства для оптимизации - там индексы, CTE и прочие прелести.