Оптимизация SQL-запросов
В этом уроке мы рассмотрим оптимизацию SQL-запросов.
Эта тема вам очень пригодится в трех случаях:
- Оптимизацию часто спрашивают на собеседованиях на Middle / Senior позициях в аналитике. А это способ отлично проявить себя, если вы с уверенностью сможете рассказать, как ускорить запросы.
- Даже если вы еще начинающий, знание основных аспектов оптимизации поможет вам не положить базу данных в первый день на работе и в целом писать запросы, которые более-менее нормально отрабатывают.
- Бывают сложные случаи, когда нужно залезать в план запроса и переписывать много кода, потому что иначе ваши скрипты будут падать с ошибками.
Поэтому все пункты из этой темы можно разделить на две категории:
- must have правила — без них вы будете писать чудовищно неэффективные запросы, но при этом эти правила можно соблюдать, особо не думая, то есть по ходу написания запроса.
- should be правила — хорошо было бы им следовать, но часто они не дают сильного прироста или на них нужно тратить много времени и интеллектуальных ресурсов.
Также важный момент, что оптимизация — это хорошо и тешит наше инженерное "я", но в реальной практике всегда нужен баланс, и делать какие-то супер затратные вещи стоит только в случаях:
- Если на данном этапе это нас развивает.
- Если это очень необходимо.