Почему ваши SQL-запросы работают медленно: 3 частые ошибки

За годы работы с аналитикой я заметил, что большинство проблем с производительностью SQL вызваны тремя типичными ошибками: 

1. Отсутствие индексов на часто используемых полях Пример: 

SELECT * FROM transactions WHERE client_id = 12345;

Решение: 

CREATE INDEX idx_client_id ON transactions(client_id);

2. Избыточные подзапросы вместо JOIN Плохо: 

SELECT     (SELECT name FROM clients WHERE id = t.client_id),     t.amount FROM transactions t;

Лучше: 

SELECT c.name, t.amount FROM transactions t JOIN clients c ON t.client_id = c.id;

3. Выборка лишних данных Плохая практика: 

SELECT * FROM huge_table;  -- Загружает всё

Оптимально: 

SELECT id, date, amount FROM huge_table WHERE date BETWEEN '2025-01-01' AND '2025-01-31';

Бонус: как анализировать проблемные запросы

В PostgreSQL:  EXPLAIN ANALYZE SELECT ...;

В MS SQL:  SET STATISTICS TIME ON;

#sql #optimization #dataanalysis