Skip to content

range_agg: новая функция в PostgreSQL 14

Пересказ статьи Asad Ali. range_agg: A New Feature in PostgreSQL 14


Функция range_agg в PostgreSQL является новой агрегатной функцией, которая позволяет создавать диапазоны из агрегированных данных. Это полезно для суммирования последовательностей непрерывных или дискретных значений в диапазонах, особенно для временных или числовых данных.

Вот пример для демонстрации работы range_agg в PostgreSQL 14. Продолжить чтение "range_agg: новая функция в PostgreSQL 14"

Миграция базы данных MySQL на PostgreSQL с помощью pgLoader

Пересказ статьи Alexei. Migrate a MySQL database to PostgreSQL using pgLoader


У меня возникла интересная задача, и я думаю, что будет полезно поделиться ей. Возможно, это кому-то поможет.

Описание задачи


Я получил дамп базы данных MySQL, но сейчас я работаю с PostgreSQL. Я начал думать о том, как перенести данные из MySQL в PostgreSQL и обнаружил инструмент, который называется PgLoader.

Продолжить чтение "Миграция базы данных MySQL на PostgreSQL с помощью pgLoader"

Новости за 2024-10-19 - 2024-10-25

§ Новая задача DML от selber (сложность 2 балла) и перестановки:
Новая задача -> 24
24 -> 12
12 -> (-2)


§ Популярные темы недели на форуме

Топик		Сообщений	Просмотров
27 (Learn) 5 14
23 (DML) 2 6
35 (Learn) 2 14
190 (Learn) 2 4

Продолжить чтение "Новости за 2024-10-19 - 2024-10-25"

Polars в Python

Пересказ статьи Pawan Kumar Ganjhu. Polars In Python


Polars в Python - это быстрая библиотека фреймов данных, которая подобна Pandas, но разработана с целью обеспечения лучшей производительности для больших наборов данных. Она построен на основе Apache Arrow и Rust, что делает ее эффективной для аналитической рабочей нагрузки. Polars особенно полезна для обработки больших наборов данных и эффективного выполнения операций типа фильтрации, агрегации и преобразований.

Вот краткий обзор использования Polars в Python:
Продолжить чтение "Polars в Python"

Вышел PostgreSQL 17

Пересказ статьи Anton Okolelov. PostgreSQL 17 Released


Производительность


Значительно улучшено управление памятью. Вакуумация теперь потребляет в 20 раз меньше памяти, ускоряя свою операцию и снижая нагрузку на систему.

Операции записи при высокой конкурентной нагрузке стали вдвое быстрей, благодаря оптимизированной обработке WAL.

Улучшенная производительность запросов, использующих условия IN в индексах B-Tree. Добавлена поддержка для инструкций SIMD (включая AVX-512) для ускорения вычислений.

Оптимизирована производительность COPY для экспорта больших объемов данных.

Продолжить чтение "Вышел PostgreSQL 17"

Новости за 2024-10-12 - 2024-10-18

§ Лидеры недели

	Участник		w_sel	all_sel	select	dml	Всего	Рейтинг
Протасов Д.Е. (preblud) 13 31 19 0 19 2129
Чувствин М. (chuvstvinmaxim) 7 79 16 0 16 519
Назаренко И.Ю. (ki.mono) 8 24 13 0 13 2832
Руднев В.В. (pazartesi) 6 53 12 0 12 1024
Голинский М.О. (motcan2) 6 24 10 0 10 2007
Москвин П. (Respect) 6 24 10 0 10 2831
Степаненко К.Ю. (St.Constanti 4 57 7 0 7 912
Доронин С.Р. (stepafix1) 5 5 7 0 7 6743
Давыдов (mdavydov) 5 5 6 19 25 4235
Ц (ArtTR) 4 4 5 2 7 6742
Боярский В.А. (ChronoMorzh) 2 87 5 0 5 304
Metalnikov (kirillmet) 3 79 5 0 5 417
Кочеров Е.С. (ssense) 4 31 5 0 5 1497
Palkina (PalkinaSA) 4 4 5 0 5 7466
Богач В.Н. (Uladzimir Bahach) 4 4 5 0 5 7710
Smith (tibacityblues) 3 15 4 0 4 2132
Zzz (zzzuhra) 3 4 4 0 4 8013
Продолжить чтение "Новости за 2024-10-12 - 2024-10-18"

Использование улучшений SQL/JSON для современных рабочих нагрузок в PostgreSQL 16

Пересказ статьи Vibhor Kumar. Exploiting SQLJSON Enhancements for Modern Workloads in PostgreSQL 16


Последняя итерация PostgreSQL, версия 16, принесла ряд улучшений, которые поддерживают возможности работы с данными JSON. Эти улучшения не только более тесно сближают PostgreSQL со стандартом SQL/JSON, но также предлагают существенную оптимизацию, которая упрощает и улучшает работу с данными JSON. Эта эволюция свидетельствует о стремлении PostgreSQL удовлетворять потребности современных работающих с данными приложений, которые используют полуструктурированные данные для множества вариантов использования.

В этой статье мы вникнем в улучшения SQL/JSON, внесенные в PostgreSQL 16, проиллюстрируем их применение примерами кода и рассмотрим реальные сценарии, для которых эти улучшения могут стать особенно полезными.

Продолжить чтение "Использование улучшений SQL/JSON для современных рабочих нагрузок в PostgreSQL 16"

PostgreSQL. Как выявить запросы, которые максимально используют временные файлы?

Пересказ статьи Dmitry Romanoff. Postgres. How to check the top queries that use temporary files?


Временные файлы в базе данных PostgreSQL могут стать проблемой по нескольким причинам:

  1. Влияние на производительность.

  2. Использование пространства на диске.

  3. Может выделяться все больше и больше памяти.

  4. Проблемы параллелизма.

  5. Сложность в мониторинге и обслуживании.

Что следует делать, чтобы избежать временных файлов в базе данных PostgreSQL?
Продолжить чтение "PostgreSQL. Как выявить запросы, которые максимально используют временные файлы?"

Новости за 2024-10-05 - 2024-10-11

§ Популярные темы недели на форуме

Топик		Сообщений	Просмотров
69 (SELECT) 2 6
56 (Learn) 2 8

§ Авторы недели на форуме

Автор		Сообщений
selber 3
chuvstvinmaxim 2
yarosurafu 2

§ Изменения среди лидеров рейтинга

Рейтинг	Участник (решенные задачи)
54 gennadi_s (149)
70 born2tilt (166, 195)

Продолжить чтение "Новости за 2024-10-05 - 2024-10-11"

Секционирование таблицы по диапазону в базе данных PostgreSQL

Пересказ статьи Dmitry Romanoff. Partitioning a table by range in the PostgreSQL database


Секционирование является важным методом для достижения хорошей производительности в базах данных с большими таблицами. Когда размер таблицы постоянно растет, также возрастает стоимость каждой операции с этой таблицей. Секционирование разбивает большую таблицу на несколько меньших. Смысл в том, чтобы позволить механизму запросов сканировать более мелкие таблицы и индексы, чтобы найти требуемые данные. Секции улучшают производительность работы с таблицей, когда они сделаны правильно. Секционирование таблицы по значениям в диапазоне обычно используется с полями даты.

Здесь я на практике продемонстрирую, как работает секционирование. Продолжить чтение "Секционирование таблицы по диапазону в базе данных PostgreSQL"

Оптимизационные трюки в PostgreSQL. Как быстро загрузить данные: часть 1

Пересказ статьи Mitchell Warr. PostgreSQL Optimization Tricks: How to Load Data Fast Part 1


Итак, у вас есть несколько сотен миллионов строк данных в таблице, и вы просто не получаете той скорости, что раньше. Она работает медленнее, чем когда была молодой и энергичной базой данных, и вы можете поклясться, что слышите, как она скрипит, когда вы ускоряете распределение памяти.

Вы открываете объяснение плана запроса и заглядываете под капот в чем-то типа https://explain.dalibo.com. Но что вы фактически можете сделать?

Продолжить чтение "Оптимизационные трюки в PostgreSQL. Как быстро загрузить данные: часть 1"

Новости за 2024-09-28 - 2024-10-04

§ Изменения среди лидеров рейтинга

Рейтинг	Участник (решенные задачи)
55 gennadi_s (147)
73 born2tilt (170, 203, 204, 235, 238, 260)

§ Лидеры недели

	Участник		w_sel	all_sel	select	dml	Всего	Рейтинг
Чувствин М. (chuvstvinmaxim) 20 54 38 0 38 1287
Metalnikov (kirillmet) 14 58 24 0 24 880
Москвин П. (Respect) 14 17 19 4 23 4070
Руднев В.В. (pazartesi) 8 46 18 2 20 1179
Любомудров Р.Г. (born2tilt) 9 173 14 0 14 73
Степаненко К.Ю. (St.Constanti 7 48 13 0 13 1044
Сергеева О.Б. (Valkiri9) 8 17 10 0 10 4514
Протасов Д.Е. (preblud) 6 6 8 5 13 5563
Кочеров Е.С. (ssense) 6 22 8 0 8 1801
Бабаян (Eliorika) 4 4 5 2 7 6777
Голинский М.О. (motcan2) 4 12 5 0 5 3358
Назаренко И.Ю. (ki.mono) 4 7 5 0 5 5574
Eremkin A. (Artyom Eryomkin) 4 4 5 0 5 7455
Саркисьян Г. (gennadi_s) 1 158 4 0 4 55
Курицын В.Н. (ValNick) 1 151 4 0 4 137
Smith (tibacityblues) 3 11 4 0 4 2480
Мельников Е. (AckermanL) 4 14 4 0 4 4925
Иванов П.И. (sqlSolver123) 3 4 4 0 4 8135
Продолжить чтение "Новости за 2024-09-28 - 2024-10-04"

Более эффективный подсчет

Пересказ статьи Aaron Bertrand. Counting more efficiently


Почти десятилетие назад я написал статью с названием «Вредные привычки: трудный подсчет строк». В той статье я говорил о том, как мы можем использовать метаданные для мгновенного получения числа строк в таблице. Обычно люди делают следующее, что приводит к чтению всей таблицы или индекса:

DECLARE @c int = (SELECT COUNT(*) FROM dbo.TableName);

Чтобы в значительной степени избежать ограничений на размер данных, вместо этого мы можем использовать sys.partitions. Продолжить чтение "Более эффективный подсчет"

Планирование планов. Часть 26 - окна с диапазонной рамкой

Пересказ статьи Hugo Kornelis. Plansplaining part 26 – Windows with a ranged frame


Это двадцать шестая часть данной серии (plansplaining). И уже четвертый эпизод об оконных функциях. Первая из этих статей была посвящена базовым оконным функциям; вторая была посвящена быстрой оптимизации накопительных агрегатов, а в третьей публикации объяснялось, как оптимизатор работает при отсутствии поддержки плана выполнения для UNBOUNDED FOLLOWING.
Продолжить чтение "Планирование планов. Часть 26 - окна с диапазонной рамкой"

Новости за 2024-09-21 - 2024-09-27

§ В ответ на замечание chuvstvinmaxim усилена проверка задачи 12 (SELECT, рейтинговый этап).


§ Лидеры недели

	Участник		w_sel	all_sel	select	dml	Всего	Рейтинг
Чувствин М. (chuvstvinmaxim) 22 34 33 0 33 2085
Odilbekov J. (xerxessql) 17 17 22 2 24 4348
Любомудров Р.Г. (born2tilt) 11 164 20 0 20 91
Metalnikov (kirillmet) 9 44 19 0 19 1140
Степаненко К.Ю. (St.Constanti 7 41 17 0 17 1191
Gavrilov G.A. (potasovka) 6 63 13 28 41 728
Товстык Д.О. (bdlck) 6 12 8 0 8 5223
Сергеева О.Б. (Valkiri9) 5 9 8 0 8 5593
Руднев В.В. (pazartesi) 3 38 7 0 7 1415
Кочеров Е.С. (ssense) 6 16 7 0 7 2084
Саркисьян Г. (gennadi_s) 2 157 6 0 6 60
Фролов К.А. (Murderface_) 1 154 4 0 4 132
Назаренко (Igagoshka) 3 3 4 0 4 9028
Продолжить чтение "Новости за 2024-09-21 - 2024-09-27"