TGViewer
SQL Ready | Базы Данных SQL Ready | Базы Данных @sql_ready · 17.6K subscribers
Post #747 2.24K
PARTITION PRUNING — читаем только нужные данные!

Когда таблица разрастается до сотен миллионов строк, даже простые запросы начинают тормозить. Но часто нам нужен только один месяц — зачем читать всё?

Чтобы ускорить выборку, разобьём таблицу на разделы по дате с помощью range partitioning:
CREATE TABLE sales (
sale_date DATE,
amount NUMERIC
) PARTITION BY RANGE (sale_date);


Теперь создадим конкретные партиции — каждая отвечает за свой месяц:
CREATE TABLE sales_2024_01 PARTITION OF sales
FOR VALUES FROM ('2024-01-01') TO ('2024-02-01');

CREATE TABLE sales_2024_02 PARTITION OF sales
FOR VALUES FROM ('2024-02-01') TO ('2024-03-01');


Представим, что нам нужно посчитать сумму продаж только за январь 2024 года:
SELECT SUM(amount)
FROM sales
WHERE sale_date BETWEEN '2024-01-01' AND '2024-01-31';


Добавим EXPLAIN ANALYZE, чтобы увидеть, как именно Postgres выполняет запрос:
EXPLAIN ANALYZE
SELECT SUM(amount)
FROM sales
WHERE sale_date BETWEEN '2024-01-01' AND '2024-01-31';


🔥 Важно: pruning работает только, если условие по дате написано явно — без функций, кастов и переменных.

➡️ SQL Ready | #практика
  • 👍 9
  • ❤ 7
  • 🔥 6
More from @sql_ready
  1. Oct 17, 2026📂 16 паттернов программирования, которые должен знать каждый разработчик! Например, Two P…
  2. Oct 16, 2026Почему перенос условия из ON в WHERE меняет семантику LEFT JOIN При использовании LEFT JOI…
  3. Oct 16, 2026⚡️ В сети начали массово сливать IT-курсы и книги известных онлайн школ Вот отсортированна…
  4. Oct 16, 2026👍 Интересная статья лежит на Хабре: «За пределами EXPLAIN: как увидеть выполнение запроса…
  5. Oct 15, 2026Переносите строки без промежуточной выборки! Обычно архивирование делают в два этапа: снач…
  6. Oct 15, 2026Требуются 7 человек, чтобы помогали собирать чат-ботов для бизнеса по блокам, как лего. Ст…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →