Страхотен петък на всички! Остава по-малко време до стартирането на курса
На етап развитие
В PostgreSQL 10 видяхме раждането на "декларативното разделяне" - функция, предназначена да разреши много проблеми, които бяха неразрешими с помощта на стария метод с наследяване. Това доведе до много по-мощен инструмент, който ни позволява да разделяме данните хоризонтално!
Сравнение на характеристиките
PostgreSQL 11 има впечатляващ набор от нови функции, които помагат за подобряване на производителността и правят разделените таблици по-прозрачни за приложенията.
1. Използване на ограничаващи изключения
2. Добавя само възли
3. Само за разделена таблица, препращаща към неразделена
4. Индексите трябва да съдържат всички ключови колони на раздела
5. Ограничението на секциите от двете страни трябва да съвпада
продуктивност
Тук имаме и добри новини! Добавен нов метод WHERE
. Предишният алгоритъм от своя страна тества всяка секция, за да определи дали може да изпълни условието WHERE
. Това доведе до допълнително увеличаване на времето за планиране, тъй като броят на секциите се увеличи.
В 9.6, с разделяне на наследяване, маршрутизирането на кортежи в дялове обикновено се извършваше чрез писане на тригерна функция, която съдържаше поредица от оператори IF за вмъкване на кортеж в правилния дял. Тези функции може да се изпълняват много бавно. С декларативното разделяне, добавено във версия 10, това е много по-бързо.
Използвайки разделена таблица със 100 дяла, можем да оценим производителността на зареждането на 10 милиона реда в таблица с 1 колона BIGINT и 5 колони INT.
Изпълнението на заявка в тази таблица за търсене на единичен индексиран запис и изпълнение на DML за манипулиране на единичен запис (използвайки само 1 процесор):
Тук можем да видим, че производителността на всяка операция се е увеличила значително след PG 9.6. Заявки SELECT
изглеждат много по-добре, особено тези, които могат да изключат много дялове по време на планирането на заявката. Това означава, че планировчикът може да пропусне повечето от работата, която е трябвало да върши преди. Например вече не се изграждат пътеки за ненужни участъци.
Заключение
Разделянето на таблици започва да се превръща в много мощна функция в PostgreSQL. Тя ви позволява бързо да прехвърляте данни онлайн и да ги прехвърляте офлайн, без да чакате завършването на бавни масивни DML операции.. Това също означава, че свързаните данни могат да се съхраняват заедно, което означава, че необходимите данни могат да бъдат достъпни много по-ефективно. Подобренията, направени в тази версия, не биха били възможни без разработчиците, рецензентите и изпълнителите, които работят неуморно върху всички тези функции.
Благодаря на всички тях! PostgreSQL 11 изглежда фантастично!
Ето една такава кратка, но доста интересна статия. Споделете вашите коментари и не забравяйте да се абонирате
Източник: www.habr.com