HighLoad++ 2015 завершён! Ждём вас в 2016 году!

Профессиональная конференция разработчиков высоконагруженных систем

2 и 3 ноября 2015 Крокус-Экспо МОСКВА
Профессиональная конференция разработчиков высоконагруженных систем

Запись в PostgreSQL: что у нее внутри
Базы данных, системы хранения

Программный комитет ещё не принял решения по этому докладу
Postgres Professional

Программирует с 1996 года. Много времени посвятил разработке веб-ориентированных информационных систем.
С 1998 по 2004 преподавал в МГТУ "Станкин".
В апреле 2015 присоединился к команде Postgres Professional.
Последовательный сторонник открытого ПО.

Тезисы

Знание внутреннего устройства СУБД позволяет использовать возможности базы данных по максимуму. Устройство PostgreSQL в целом достаточно подробно документировано, однако с некоторыми аспектами работы до сих пор можно ознакомиться, только изучая исходный код. Так, например, в ряде работ наглядно показано, каким образом PostgreSQL хранит записи, упаковывая их в страницы, и как страницы уложены в хранилище, но нигде не рассказано о внутреннем устройстве самих данных записи. Данный доклад призван восполнить этот пробел.

Для достижения поставленной задачи было модифицировано расширение PostgreSQL pageinspect таким образом, чтобы пользователь мог получить прямой доступ к данным записи в том виде, в котором они хранятся на диске или в памяти. Получив таким образом возможность изучать структуры данных напрямую, а также в некоторой степени опираясь на исходный код, в этом докладе мы рассмотрим:
- как именно запись разделяется на атрибуты;
- как хранятся атрибуты разного типа, чем отличаются атрибуты фиксированной и переменной длины;
- рассмотрим разные способы упаковки атрибутов переменной длины;
- поговорим об особенностях хранения NULL значений;
- уделим внимание такой теме как "выравнивание" и тому, как происходит выравнивание атрибутов в записи PostgreSQL;
- для сверхдлинных атрибутов переменной длины рассмотрим механизмы компрессии и выноса значения во внешнее хранилище (TOAST).

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

Другие доклады секции
Базы данных, системы хранения

Rambler's Top100