Keluaran DBMS PostgreSQL 12

Selepas setahun pembangunan diterbitkan cawangan stabil baharu DBMS PostgreSQL 12. Kemas kini untuk cawangan baharu akan keluar selama lima tahun sehingga November 2024.

Utama inovasi:

  • Menambah sokongan untuk "lajur yang dihasilkan", nilai yang dikira berdasarkan ungkapan yang meliputi nilai lajur lain dalam jadual yang sama (serupa dengan paparan, tetapi untuk lajur individu). Lajur yang dijana boleh terdiri daripada dua jenis - disimpan dan maya. Dalam kes pertama, nilai dikira pada masa data ditambah atau diubah, dan dalam kes kedua, nilai dikira pada setiap bacaan berdasarkan keadaan semasa lajur lain. Pada masa ini, PostgreSQL hanya menyokong lajur terjana yang disimpan;
  • Menambahkan keupayaan untuk menanyakan data daripada dokumen JSON menggunakan Ekspresi laluan, mengingatkan XPath dan ditakrifkan dalam standard SQL/JSON. Mekanisme pengindeksan sedia ada digunakan untuk meningkatkan kecekapan pemprosesan ungkapan sedemikian untuk dokumen yang disimpan dalam format JSONB;
  • Didayakan secara lalai ialah penggunaan pengkompil JIT (Just-in-Time) berdasarkan perkembangan LLVM untuk mempercepatkan pelaksanaan beberapa ungkapan semasa pemprosesan pertanyaan SQL. Sebagai contoh, JIT digunakan untuk mempercepatkan pelaksanaan ungkapan di dalam blok WHERE, senarai sasaran, ungkapan agregat dan beberapa operasi dalaman;
  • Prestasi pengindeksan telah dipertingkatkan dengan ketara. Indeks B-tree dioptimumkan untuk berfungsi dalam persekitaran yang indeksnya kerap berubah - Ujian TPC-C menunjukkan peningkatan keseluruhan dalam prestasi dan pengurangan purata dalam penggunaan ruang cakera sebanyak 40%. Overhed dikurangkan apabila menjana log tulis ke hadapan (WAL) untuk jenis indeks GiST, GIN dan SP-GIST. Untuk GiST, keupayaan untuk mencipta indeks pembalut (melalui ungkapan INCLUDE) yang menyertakan lajur tambahan telah ditambahkan. Dalam operasi BUAT STATISTIK Menyediakan sokongan untuk statistik Most Common Value (MCV) untuk menjana pelan pertanyaan yang lebih optimum apabila menggunakan lajur teragih tidak sekata;
  • Pelaksanaan pembahagian dioptimumkan untuk pertanyaan yang merangkumi jadual dengan beribu-ribu partition, tetapi terhad kepada memilih subset data yang terhad. Prestasi menambah data pada jadual terbahagi menggunakan operasi INSERT dan COPY telah ditingkatkan, dan ia juga mungkin untuk menambah bahagian baharu melalui "ALTER TABLE ATTACH PARTITION" tanpa menyekat pelaksanaan pertanyaan;
  • Sokongan tambahan untuk pengembangan sebaris automatik bagi ungkapan jadual umum (Ungkapan Jadual Biasa, CTE) yang membenarkan penggunaan set hasil bernama sementara yang ditentukan menggunakan pernyataan WITH. Arahan sebaris boleh meningkatkan prestasi kebanyakan pertanyaan, tetapi pada masa ini hanya digunakan untuk CTE bukan rekursif;
  • Menambah sokongan bukan deterministik sifat tempat "Pengumpulan", yang membolehkan anda menetapkan peraturan pengisihan dan kaedah pemadanan dengan mengambil kira maksud aksara (contohnya, semasa mengisih nilai digital, kehadiran tolak dan titik di hadapan nombor dan jenis yang berbeza ejaan diambil kira, dan apabila membandingkan, kes aksara dan kehadiran tanda aksen tidak diambil kira) ;
  • Sokongan tambahan untuk pengesahan pelanggan berbilang faktor, di mana dalam pg_hba.conf anda boleh menggabungkan pengesahan sijil SSL (clientcert=verify-full) dengan kaedah pengesahan tambahan seperti scram-sha-256 untuk pengesahan;
  • Menambah sokongan untuk penyulitan saluran komunikasi apabila mengesahkan melalui GSSAPI, kedua-duanya di bahagian pelanggan dan di bahagian pelayan;
  • Menambah sokongan untuk menentukan pelayan LDAP berdasarkan rekod "DNS SRV" jika PostgreSQL dibina dengan OpenLDAP;
  • Operasi tambah "REINDEX SERENTAKΒ» untuk membina semula indeks tanpa menyekat operasi tulis kepada indeks;
  • Pasukan ditambah pg_checksums, yang membolehkan anda mendayakan atau melumpuhkan semak semak halaman data untuk pangkalan data sedia ada (sebelum ini operasi ini hanya disokong semasa permulaan pangkalan data);
  • Disediakan output penunjuk kemajuan untuk operasi CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL dan pg_checksums;
  • Menambah arahan "CIPTA KAEDAH AKSESΒ» untuk menyambungkan pengendali bagi kaedah penyimpanan meja baharu yang dioptimumkan untuk pelbagai tugas tertentu. Pada masa ini satu-satunya kaedah capaian jadual terbina dalam ialah "timbunan";
  • Fail konfigurasi recovery.conf telah digabungkan dengan postgresql.conf. Sebagai penunjuk peralihan kepada keadaan pemulihan selepas kegagalan, sekarang sepatutnya gunakan fail recovery.signal dan standby.signal.

Sumber: opennet.ru

Tambah komen