SQL оптимизация: базовые принципы

Оптимизация SQL-запросов

В этом уроке мы рассмотрим оптимизацию SQL-запросов.

Эта тема вам очень пригодится в трех случаях:

  • Оптимизацию часто спрашивают на собеседованиях на Middle / Senior позициях в аналитике. А это способ отлично проявить себя, если вы с уверенностью сможете рассказать, как ускорить запросы.
  • Даже если вы еще начинающий, знание основных аспектов оптимизации поможет вам не положить базу данных в первый день на работе и в целом писать запросы, которые более-менее нормально отрабатывают.
  • Бывают сложные случаи, когда нужно залезать в план запроса и переписывать много кода, потому что иначе ваши скрипты будут падать с ошибками.

Поэтому все пункты из этой темы можно разделить на две категории:

  • must have правила — без них вы будете писать чудовищно неэффективные запросы, но при этом эти правила можно соблюдать, особо не думая, то есть по ходу написания запроса.
  • should be правила — хорошо было бы им следовать, но часто они не дают сильного прироста или на них нужно тратить много времени и интеллектуальных ресурсов.

Также важный момент, что оптимизация — это хорошо и тешит наше инженерное "я", но в реальной практике всегда нужен баланс, и делать какие-то супер затратные вещи стоит только в случаях:

  • Если на данном этапе это нас развивает.
  • Если это очень необходимо.