PostgreSQL 11: Postgres 9.6-dan Postgres 11-ə bölünmə təkamülü

Hər kəsin cümə günü xeyirli olsun! Kursun başlamasına getdikcə daha az vaxt qalır "Relational DBMS", buna görə də bu gün mövzu ilə bağlı daha bir faydalı materialın tərcüməsini paylaşırıq.

İnkişaf mərhələsində PostgreSQL 11 Cədvəl bölgüsünü yaxşılaşdırmaq üçün bəzi təsirli işlər görülmüşdür. Bölmə cədvəlləri - bu PostgreSQL-də kifayət qədər uzun müddət mövcud olan bir funksiyadır, lakin o, çox faydalı funksiyaya çevrildiyi 10-cu versiyaya qədər mövcud deyildi. Əvvəllər bildirmişdik ki, cədvəlin miras qalması bizim bölmənin həyata keçirilməsidir və bu doğrudur. Yalnız bu üsul sizi işin çoxunu əl ilə etməyə məcbur etdi. Məsələn, əgər siz INSERT-lər zamanı dəstlərin bölmələrə daxil edilməsini istəyirsinizsə, bunu sizin üçün etmək üçün tetikleyiciləri konfiqurasiya etməlisiniz. Varislik yolu ilə bölmə çox yavaş idi və əlavə funksionallıq yaratmaq çətin idi.

PostgreSQL 10-da biz köhnə miras metodundan istifadə edərək həll olunmayan bir çox problemləri həll etmək üçün nəzərdə tutulmuş bir xüsusiyyət olan "deklarativ bölmənin" doğulduğunu gördük. Bu, məlumatları üfüqi şəkildə bölməyə imkan verən daha güclü bir alətə səbəb oldu!

Xüsusiyyətlərin müqayisəsi

PostgreSQL 11, performansı yaxşılaşdırmağa və bölmələrə bölünmüş cədvəlləri tətbiqlər üçün daha şəffaf etməyə kömək edən təsirli yeni funksiyalar dəstini təqdim edir.

PostgreSQL 11: Postgres 9.6-dan Postgres 11-ə bölünmə təkamülü
PostgreSQL 11: Postgres 9.6-dan Postgres 11-ə bölünmə təkamülü
PostgreSQL 11: Postgres 9.6-dan Postgres 11-ə bölünmə təkamülü
1. Məhdudlaşdıran İstisnalardan İstifadə
2. Yalnız qovşaqları əlavə edir
3. Yalnız bölünməmiş birinə istinad edən bölməli cədvəl üçün
4. İndekslər bölmənin bütün əsas sütunlarını ehtiva etməlidir
5. Hər iki tərəfdəki bölmə məhdudiyyətləri uyğun olmalıdır

Məhsuldarlıq

Burada da yaxşı xəbərimiz var! Yeni üsul əlavə edildi bölmələrin silinməsi. Bu yeni alqoritm sorğu vəziyyətinə baxaraq uyğun bölmələri müəyyən edə bilər WHERE. Əvvəlki alqoritm də öz növbəsində şərti ödəyə biləcəyini müəyyən etmək üçün hər bir bölməni yoxlayırdı WHERE. Bu, bölmələrin sayı artdıqca planlaşdırma vaxtının əlavə artması ilə nəticələndi.

9.6-da, miras yolu ilə bölmə ilə, dəstlərin bölmələrə yönləndirilməsi adətən dəsti düzgün bölməyə daxil etmək üçün bir sıra IF ifadələrini ehtiva edən tətik funksiyası yazmaqla həyata keçirilirdi. Bu funksiyaların icrası çox yavaş ola bilər. 10-cu versiyaya əlavə edilmiş deklarativ bölmə ilə bu, daha sürətli işləyir.

100 arakəsmə ilə bölünmüş cədvəldən istifadə edərək, 10 BIGINT sütunu və 1 INT sütunu olan bir cədvələ 5 milyon sətir yükləmə performansını qiymətləndirə bilərik.

PostgreSQL 11: Postgres 9.6-dan Postgres 11-ə bölünmə təkamülü

Bir indeksləşdirilmiş qeydi tapmaq və bir qeydi idarə etmək üçün DML-i yerinə yetirmək üçün bu cədvəlin sorğulanması performansı (yalnız 1 prosessordan istifadə etməklə):

PostgreSQL 11: Postgres 9.6-dan Postgres 11-ə bölünmə təkamülü

Burada PG 9.6-dan sonra hər bir əməliyyatın performansının əhəmiyyətli dərəcədə artdığını görə bilərik. İstək SELECT daha yaxşı görünür, xüsusən də sorğunun planlaşdırılması zamanı çoxlu bölmələri istisna edə bilənlər. Bu o deməkdir ki, planlaşdırıcı əvvəllər görməli olduğu bir çox işi atlaya bilər. Məsələn, lazımsız bölmələr üçün artıq yollar tikilmir.

Nəticə

Cədvəl bölməsi PostgreSQL-də çox güclü xüsusiyyətə çevrilməyə başlayır. Bu, yavaş, kütləvi DML əməliyyatlarının tamamlanmasını gözləmədən məlumatları tez bir zamanda onlayn göstərməyə və onları oflayn rejimə keçirməyə imkan verir.. Bu həm də o deməkdir ki, əlaqəli məlumat birlikdə saxlanıla bilər, yəni sizə lazım olan məlumatlara daha səmərəli şəkildə daxil olmaq mümkündür. Bu versiyada edilən təkmilləşdirmələr bütün bu xüsusiyyətlər üzərində yorulmadan işləyən tərtibatçılar, rəyçilər və icraçılar olmadan mümkün olmazdı.
Onların hamısına təşəkkür edirik! PostgreSQL 11 fantastik görünür!

Budur belə qısa, lakin olduqca maraqlı bir məqalə. Şərhlərinizi paylaşın və qeydiyyatdan keçməyi unutmayın açıq gün, bunun çərçivəsində kurs proqramı ətraflı təsvir olunacaq.

Mənbə: www.habr.com

Добавить комментарий