Paglabas ng PostgreSQL 12

Inihayag ng pangkat ng PostgreSQL ang paglabas ng PostgreSQL 12, ang pinakabagong bersyon ng open source relational database management system.
Ang PostgreSQL 12 ay makabuluhang napabuti ang pagganap ng query - lalo na kapag nagtatrabaho sa malalaking volume ng data, at na-optimize din ang paggamit ng disk space sa pangkalahatan.

Kasama sa mga bagong feature ang:

  • pagpapatupad ng JSON Path query language (ang pinakamahalagang bahagi ng SQL/JSON standard);
  • pag-optimize ng pagpapatupad ng mga karaniwang expression ng talahanayan (WITH);
  • suporta para sa mga nabuong column

Patuloy ding ginagawa ng komunidad ang pagpapalawak at pagiging maaasahan ng PostgreSQL, pagbuo ng suporta para sa internasyonalisasyon, mga kakayahan sa pagpapatunay, at pagbibigay ng mas madaling paraan upang pangasiwaan ang system.

Kasama sa release na ito ang pagpapatupad ng interface para sa mga pluggable storage engine, na nagbibigay-daan na ngayon sa mga developer na gumawa ng sarili nilang paraan ng pag-iimbak ng data.

Mga pagpapabuti sa pagganap

Kasama sa PostgreSQL 12 ang makabuluhang pagpapahusay sa pagganap at pagpapanatili para sa mga sistema ng pag-index at partitioning.

Ang mga B-tree index, ang karaniwang uri ng pag-index sa PostgreSQL, ay na-optimize sa bersyon 12 para sa mga workload na may kasamang madalas na pagbabago sa index. Ang paggamit ng TPC-C benchmark para sa PostgreSQL 12 ay nagpakita ng isang average na 40% na pagbawas sa paggamit ng espasyo at isang pangkalahatang pagtaas sa pagganap ng query.

Ang mga query laban sa mga naka-partition na talahanayan ay nakatanggap ng mga kapansin-pansing pagpapahusay, lalo na para sa mga talahanayan na binubuo ng libu-libong mga partisyon na nangangailangan ng pagtatrabaho sa mga limitadong bahagi lamang ng mga arrays ng data. Ang pagganap ng pagdaragdag ng data sa mga naka-partition na talahanayan gamit ang INSERT at COPY ay napabuti, pati na rin ang kakayahang mag-attach ng bagong partition nang hindi hinaharangan ang mga query.

Ang PostgreSQL 12 ay gumawa ng mga karagdagang pagpapabuti sa pag-index na nakakaapekto sa pangkalahatang pagganap, kabilang ang:

  • nabawasan ang overhead kapag bumubuo ng WAL para sa mga uri ng index ng GiST, GIN at SP-GiST;
  • ang kakayahang lumikha ng tinatawag na mga covering index (INCLUDE clause) sa mga index ng GiST;
  • ang kakayahang magsagawa ng mga query sa "pinakamalapit na kapitbahay" (paghahanap sa k-NN) gamit ang operator ng distansya (<->) at paggamit ng mga index ng SP-GiST;
  • suporta para sa pagkolekta ng mga istatistika ng most-common value (MCV) gamit ang CREATE STATISTICS, na tumutulong na makakuha ng mas mahuhusay na query plan kapag gumagamit ng mga column na ang mga value ay hindi pantay na ipinamamahagi.

Ang JIT compilation gamit ang LLVM, na ipinakilala sa PostgreSQL 11, ay pinagana na ngayon bilang default. Ang JIT compilation ay nagpapabuti sa pagganap kapag nagtatrabaho sa mga expression sa WHERE na mga sugnay, mga listahan ng target, pinagsama-sama, at ilang mga panloob na operasyon. Ito ay magagamit kung naipon mo ang PostgreSQL sa LLVM o gumagamit ng isang PostgreSQL package na binuo gamit ang LLVM na pinagana.

Mga pagpapabuti sa mga kakayahan sa wikang SQL at karaniwang compatibility

Ipinakilala ng PostgreSQL 12 ang kakayahang mag-query ng mga dokumento ng JSON gamit ang mga expression ng path ng JSON na tinukoy sa pamantayan ng SQL/JSON. Maaaring gamitin ng mga naturang query ang mga umiiral nang mekanismo sa pag-index para sa mga dokumentong nakaimbak sa JSONB na format upang mahusay na makuha ang data.

Ang mga karaniwang expression ng talahanayan, na kilala rin bilang WITH query, ay maaari na ngayong awtomatikong isagawa gamit ang pagpapalit sa PostgreSQL 12, na kung saan ay makakatulong na mapabuti ang pagganap ng maraming umiiral na mga query. Sa bagong bersyon, ang isang substitution na bahagi ng isang WITH query ay maaari lamang isagawa kung ito ay hindi recursive, walang mga side effect, at isang beses lang nire-reference sa isang kasunod na bahagi ng query.

Ipinakilala ng PostgreSQL 12 ang suporta para sa "mga nabuong hanay". Inilalarawan sa pamantayan ng SQL, ang uri ng column na ito ay kinakalkula ang isang halaga batay sa mga nilalaman ng iba pang mga column sa parehong talahanayan. Sa bersyong ito, sinusuportahan ng PostgreSQL ang "mga naka-imbak na nabuong column", kung saan naka-imbak ang kinakalkula na halaga sa disk.

НтСрнационализация

Ang PostgreSQL 12 ay nagpapalawak ng suporta para sa mga pagsasama-sama ng ICU sa pamamagitan ng pagpayag sa mga user na tukuyin ang "mga hindi tiyak na pagsasama-sama" na maaaring, halimbawa, ay nagbibigay-daan sa mga paghahambing na hindi sensitibo sa kaso o accent-insensitive.

Pagpapatunay

Pinapalawak ng PostgreSQL ang suporta nito para sa malakas na pamamaraan ng pagpapatunay na may ilang mga pagpapahusay na nagbibigay ng karagdagang seguridad at paggana. Ang release na ito ay nagpapakilala ng client-side at server-side na encryption para sa authentication sa mga interface ng GSSAPI, pati na rin ang kakayahan para sa PostgreSQL na tumuklas ng mga LDAP server kapag ang PostgreSQL ay pinagsama-sama sa OpenLDAP.

Bukod pa rito, sinusuportahan na ngayon ng PostgreSQL 12 ang isang multi-factor na opsyon sa pagpapatunay. Ang PostgreSQL server ay maaari na ngayong hilingin sa kliyente na magbigay ng wastong SSL certificate na may kaukulang username gamit ang clientcert=verify-full, at pagsamahin ito sa isang hiwalay na kinakailangan sa paraan ng pagpapatunay (hal. scram-sha-256).

Pangangasiwa

Ipinakilala ng PostgreSQL 12 ang kakayahang magsagawa ng mga hindi nakaharang na index na muling itayo gamit ang REINDEX CONCURRENTLY na utos. Nagbibigay-daan ito sa mga user na maiwasan ang downtime ng DBMS sa panahon ng mahahabang pagbubuo ng index.

Bukod pa rito, sa PostgreSQL 12, maaari mong paganahin o huwag paganahin ang mga page checksum sa isang shutdown cluster gamit ang pg_checksums command. Dati, ang mga page checksum, isang feature na tumutulong sa pag-verify ng integridad ng data na nakaimbak sa disk, ay mapapagana lang kapag nasimulan ang PostgreSQL cluster gamit ang initdb.

Pinagmulan: linux.org.ru

Magdagdag ng komento