PostgreSQL 11: Evolusi pemisahan saka Postgres 9.6 dadi Postgres 11

Duwe jumat sing apik kabeh! Kurang lan kurang wektu isih sadurunge kursus diluncurake "DBMS relasional", mula dina iki kita nuduhake terjemahan materi liyane sing migunani babagan topik kasebut.

Ing tataran pembangunan PostgreSQL 11 Ana sawetara karya nyengsemaken rampung kanggo nambah partisi meja. Tabel partisi - Iki minangka fungsi sing wis ana ing PostgreSQL kanggo wektu sing cukup suwe, nanging sejatine ora ana nganti versi 10, sing dadi fungsi sing migunani banget. Kita sadurunge nyatakake yen warisan tabel minangka implementasi partisi, lan iki bener. Mung cara iki meksa sampeyan nindakake sebagian besar karya kanthi manual. Contone, yen sampeyan pengin tuple dilebokake menyang bagean sajrone INSERT, sampeyan kudu ngatur pemicu kanggo nindakake iki kanggo sampeyan. Pemisahan liwat warisan alon banget lan angel ngembangake fungsi tambahan ing ndhuwur.

Ing PostgreSQL 10, kita weruh lair saka "pemisahan deklaratif," fitur sing dirancang kanggo ngatasi akeh masalah sing ora bisa dipecahake nggunakake metode warisan lawas. Iki nyebabake alat sing luwih kuat sing ngidini kita mbagi data kanthi horisontal!

Perbandingan fitur

PostgreSQL 11 ngenalake fitur-fitur anyar sing nyengsemake sing mbantu ningkatake kinerja lan nggawe tabel partisi luwih transparan kanggo aplikasi.

PostgreSQL 11: Evolusi pemisahan saka Postgres 9.6 dadi Postgres 11
PostgreSQL 11: Evolusi pemisahan saka Postgres 9.6 dadi Postgres 11
PostgreSQL 11: Evolusi pemisahan saka Postgres 9.6 dadi Postgres 11
1. Nggunakake Watesan Pangecualian
2. Nambah mung kelenjar
3. Mung kanggo tabel partitioned referensi non-partisi
4. Indeks kudu ngemot kabeh kolom kunci partisi
5. Watesan bagean ing loro-lorone kudu cocog

Produktivitas

Kita uga duwe kabar apik ing kene! Cara anyar ditambahake mbusak bagean. Algoritma anyar iki bisa nemtokake bagean sing cocog kanthi ndeleng kondisi pitakon WHERE. Algoritma sadurunge, banjur mriksa saben bagean kanggo nemtokake manawa bisa nyukupi kondisi kasebut WHERE. Iki nyebabake tambahan wektu perencanaan amarga jumlah bagean tambah.

Ing 9.6, kanthi partisi liwat warisan, nuntun tuple menyang partisi biasane ditindakake kanthi nulis fungsi pemicu sing ngemot serangkaian pernyataan IF kanggo nglebokake tuple menyang partisi sing bener. Fungsi kasebut bisa dadi alon banget kanggo dieksekusi. Kanthi partisi deklaratif ditambahake ing versi 10, iki bisa digunakake luwih cepet.

Nggunakake tabel partisi kanthi 100 partisi, kita bisa ngevaluasi kinerja loading 10 yuta larik menyang tabel kanthi 1 kolom BIGINT lan 5 kolom INT.

PostgreSQL 11: Evolusi pemisahan saka Postgres 9.6 dadi Postgres 11

Kinerja pitakon tabel iki kanggo nemokake siji rekaman sing diindeks lan nglakokake DML kanggo ngapusi siji rekaman (mung nggunakake 1 prosesor):

PostgreSQL 11: Evolusi pemisahan saka Postgres 9.6 dadi Postgres 11

Ing kene kita bisa ndeleng manawa kinerja saben operasi saya tambah akeh wiwit PG 9.6. Njaluk SELECT katon luwih apik, utamane sing bisa ngilangi pirang-pirang partisi sajrone ngrancang pitakon. Iki tegese panjadwal bisa ngliwati akeh karya sing kudu ditindakake sadurunge. Contone, dalan ora dibangun maneh kanggo bagean sing ora perlu.

kesimpulan

Pemisahan tabel wiwit dadi fitur sing kuat banget ing PostgreSQL. Ngidini sampeyan nampilake data kanthi cepet kanthi online lan njupuk offline tanpa ngenteni operasi DML sing alon lan gedhe rampung.. Iki uga tegese data sing gegandhengan bisa disimpen bebarengan, tegese data sing dibutuhake bisa diakses kanthi luwih efisien. Perbaikan sing digawe ing versi iki ora bakal bisa ditindakake tanpa para pangembang, panyemak lan committers sing kerja keras ing kabeh fitur kasebut.
Thanks kanggo wong-wong mau kabeh! PostgreSQL 11 katon apik banget!

Iki minangka artikel sing cendhak nanging cukup menarik. Nuduhake komentar sampeyan lan aja lali ndhaptar Open Day, ing ngendi program kursus kasebut bakal dijlentrehake kanthi rinci.

Source: www.habr.com

Add a comment