Logo
TGCATALOG
Каталог Подборки Блог
Data analysis - DA SQL

Data analysis - DA SQL

Анализ данных: SQL, Python.

Нет оценок
582
29.10.2026
582
29.10.2026
Нет оценок
582
29.10.2026
Безопасный переход через бот
О канале

Анализ данных: SQL, Python.

Подписчиков 1,700
Тематика Технологии
Язык Русский
Ссылка t.me/business_stats

Также рекомендуем

Kekaton AI | Озвучка и клон голоса
Kekaton AI | Озвучка и клон голоса
Бот

AI бот для озвучки текста и клонирования голоса в Telegram. Создавай аудио с помощью нейросети быстро и просто.

Описание

Про анализ данных: базы данных, SQL, Python и другое для аналитиков.

Последние посты

Data analysis - DA SQL
Data analysis - DA SQL
🔒Открыть пост
и посмотреть медиа
Проблемы в оптимизации SQL-запросов Иногда приходится сталкиваться с запросами, где должно быть большое количество условий. Например, много условий в WHERE, много полей в GROUP BY, много JOIN и т.п. И такие запросы будут выполняться очень медленно и даже не факт, что выполнятся вообще. 🟠Но почему такое происходит? ▶️WHERE сам по себе работает как фильтр данных. Если вспомнить порядок выполнения SQL-запроса, то WHERE выполняется одним из первых. И по идее, если добавлять в WHERE по 5-10 условий через AND, то лишних данных может отсеяться очень много, что в итоге сделает запрос легче и быстрее. И в целом, это так и работает, и запрос реально может стать быстрее или хотя бы не измениться. Но в случае, если у нас прописаны индексы на 1-2 самых часто используемых столбцах, то добавление дополнительных неиндексированных столбцов может значительно замедлить работу. Происходит это из-за того, что оптимизатор перестает эффективно использовать индексы, и СУБД вынуждена тратить дополнительные ресурсы на проверку каждого условия для каждой строки. ▶️В случае с GROUP BY заложена другая логика. И тут замешана банальная математика. Чем больше столбцов в условие GROUP BY мы добавляем, тем больше разных вариантов система вынуждена отработать. И количество вариантов растет мультипликативно. Например, если группировать по полю "day", то мы будем иметь 365 разных комбинаций. Если добавить поле "country", то добавится условно еще 50 вариантов, итого будет 365*50 = 18 250. И каждое такое крупное поле в разы увеличивает нагрузку и, как следствие, время выполнения. ▶️Большое кол-во JOIN тоже имеет чисто математическую причину замедления. Например, мы присоединяем к таблице с клиентами таблицу с их счетами. Очевидно, что если у каждого клиента в среднем по 3 счета, то кол-во строк увеличится в 3 раза. Если еще к каждому счету присоединить транзакции, которые с него совершались, то кол-во строк увеличится еще в 50 раз. И так будет продолжаться и далее. Ну и также не стоит забывать, что чем больше таблиц, тем сложнее СУБД просчитать идеальный порядок их объединения (количество вариантов растет экспоненциально). ▶️Много COUNT(DISTINCT) тоже желательно не использовать в одном запросе. Это очень "дорогостоящая" операция сама по себе, потому что заставляет базу держать в памяти полный список всех уникальных значений, чтобы отсечь дубликаты. И если это делать по 3-4 колонкам одновременно, то СУБД будет строить несколько гигантских структур данных в памяти. И это будет медленно.
Data analysis - DA SQL
Динамика подписчиков
+-0.5% за 30 дней
Текущие
1,700
Месяц назад
1,709
Средний рост
+0 / день
Обновлено
11 часов назад

Отзывы о канале Data analysis - DA SQL

Авторизуйтесь, чтобы оставить отзыв

Только зарегистрированные пользователи могут делиться своим мнением.

Пока нет отзывов

Станьте первым, кто поделится своим впечатлением об этом ресурсе!

Похожие ресурсы

Loading
Переход на светлую тему
Главная Каталог Подборки Блог Вход