Skip to content

Улучшение функциональности журнализации с помощью новой функции JSON в PostgreSQL 15

Пересказ статьи Maly Mohsem Ahmed. Enhancing Logging Functionality with PostgreSQL 15’s new JSON Logging Feature


В PostgreSQL появилась новая замечательная функция: журнализация JSON. Хотя журналы JSON занимают больше места, чем журналы в традиционных форматах, они предлагают значительные улучшения, такие как облегчение парсинга и обработки. Эта возможность появилась, начиная с PostgreSQL 15.

Конфигурирование журнализации JSON


Чтобы включить журнализацию JSON, вам необходимо настроить файл postgresql.conf следующим образом:

log_destination = 'jsonlog'  # Доступные значения: сочетание stderr, csvlog, jsonlog, syslog и eventlog (независимо от платформы).
logging_collector = on # Требуется для захвата stderr, jsonlog и csvlog в файлы журнала. Это должно быть включено для csvlog и jsonlog.

С этими настройками вывод из журнала может выглядеть следующим образом:
Continue reading "Улучшение функциональности журнализации с помощью новой функции JSON в PostgreSQL 15"

Использование hstore для хранения неструктурированных данных в PostgreSQL

Пересказ статьи DbVisualizer. Using hstore for Storing Unstructured Data in PostgreSQL


В PostgreSQL тип данных hstore является мощным средством для хранения пар ключ-значение в одном столбце, идеальным для управления полуструктурированными и неструктурированными данными. В этой статье дается обзор hstore, содержащий его использование, включение и практические примеры его приложения.

Что такое hstore в PostgreSQL?


hstore позволяет сохранять пары ключ-значение в строковом формате в одном столбце. Эта гибкость идеально удовлетворяет пожеланиям пользователей, хорошо подходит для хранения конфигурационных параметров или метаданных. Вот простой пример:

ALTER TABLE users ADD COLUMN metadata hstore;

Continue reading "Использование hstore для хранения неструктурированных данных в PostgreSQL"

Понимание разницы в производительности при добавлении столбцов в PostgreSQL

Пересказ статьи Hagen Hübel. Understanding the Performance Difference in Adding Columns in PostgreSQL


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



Вопрос


Представьте, что у вас есть большая таблица, содержащая десятки тысяч записей. Вы хотите добавить новый допускающий NULL-значения столбец без значения по умолчанию, а затем выполнить оператор UPDATE, чтобы установить для этого нового столбца заданное значение. Этот процесс занимает значительное время. Однако, если вы вместо этого добавляете новый столбец со значением по умолчанию, это не занимает так много времени. Почему имеет место такая разница в производительности?
Continue reading "Понимание разницы в производительности при добавлении столбцов в PostgreSQL"