Selepas setahun pembangunan Cawangan stabil baharu PostgreSQL 12. Kemas kini untuk cawangan baharu selama lima tahun sehingga November 2024.
Utama :
- Menambah sokongan untuk ""lajur terjana yang nilainya dikira berdasarkan ungkapan yang merangkumi 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 apabila data ditambah atau diubah suai, manakala dalam kes kedua, nilai dikira pada setiap bacaan yang dijana pada masa ini, hanya lajur yang dijana berdasarkan lajur yang lain. PostgreSQL;
- Menambahkan keupayaan untuk menanyakan data daripada dokumen JSON menggunakan , mengingatkan dan ditakrifkan dalam standard SQL/JSON. Untuk meningkatkan kecekapan pemprosesan ungkapan sedemikian untuk dokumen yang disimpan dalam format JSONB, mekanisme pengindeksan sedia ada digunakan;
- Pengkompil Just-in-Time (JIT), berdasarkan perkembangan LLVM, didayakan secara lalai untuk mempercepatkan pelaksanaan ungkapan tertentu semasa pemprosesan pertanyaan SQL. Sebagai contoh, JIT boleh digunakan untuk mempercepatkan pelaksanaan ungkapan dalam blok "WHERE", senarai sasaran, ungkapan agregat dan operasi dalaman tertentu.
- Prestasi pengindeksan telah dipertingkatkan dengan ketara. Indeks B-tree telah dioptimumkan untuk perubahan indeks yang kerap—penanda aras TPC menunjukkan peningkatan prestasi keseluruhan dan purata pengurangan 40% dalam penggunaan ruang cakera. Overhed penjanaan log tulis ke hadapan (WAL) telah dikurangkan untuk jenis indeks GiST, GIN dan SP-GIST. Untuk GiST, keupayaan untuk mencipta indeks pembalut (melalui pernyataan INCLUDE) yang menyertakan lajur tambahan telah ditambahkan. Sokongan untuk kebanyakan statistik nilai biasa (MCV) telah disediakan, membolehkan penjanaan pelan pertanyaan yang lebih optimum apabila menggunakan lajur teragih tidak sekata;
- Pelaksanaan pembahagian telah 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 dipertingkatkan, dan keupayaan untuk menambah partition baharu menggunakan "ALTER TABLE ATTACH PARTITION" tanpa menyekat pelaksanaan pertanyaan kini tersedia.
- Sokongan tambahan untuk pengembangan sebaris automatik bagi ungkapan jadual biasa (, CTEs), yang membenarkan penggunaan set hasil bernama sementara yang ditakrifkan menggunakan klausa WITH. Pembukaan sebaris meningkatkan prestasi kebanyakan pertanyaan, tetapi pada masa ini hanya digunakan untuk CTE bukan rekursif;
- Menambah sokongan Sifat setempat "Pengumpulan", yang membolehkan anda menetapkan peraturan pengisihan dan kaedah perbandingan yang mengambil kira makna simbol (contohnya, semasa mengisih nilai digital, kehadiran tanda tolak dan tempoh sebelum nombor dan jenis penulisan yang berbeza diambil kira, dan apabila membandingkan, kes simbol dan kehadiran tanda aksen tidak diambil kira);
- Sokongan tambahan untuk pengesahan pelanggan berbilang faktor, yang membolehkan anda menggabungkan pengesahan sijil SSL (clientcert=verify-full) dengan kaedah pengesahan tambahan seperti scram-sha-256 dalam pg_hba.conf;
- Menambah sokongan untuk penyulitan saluran komunikasi apabila mengesahkan melalui , kedua-duanya di bahagian pelanggan dan di bahagian pelayan;
- Menambah sokongan untuk mengesan pelayan LDAP berdasarkan rekod SRV DNS jika PostgreSQL dibina dengan OpenLDAP;
- Operasi " telah ditambah» untuk membina semula indeks tanpa menyekat operasi tulis kepada indeks;
- Pasukan ditambah , yang membolehkan anda mendayakan dan melumpuhkan pengesahan checksum halaman data untuk pangkalan data sedia ada (sebelum ini, operasi ini hanya disokong semasa permulaan pangkalan data);
- Penunjuk kemajuan untuk operasi CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL dan pg_checksums kini dipaparkan;
- Menambah arahan ""untuk menyambungkan pengendali bagi kaedah penyimpanan meja baharu yang dioptimumkan untuk pelbagai tugasan tertentu. Pada masa ini, satu-satunya kaedah capaian jadual terbina dalam ialah "timbunan";
- Fail konfigurasi recovery.conf telah digabungkan dengan postgresql.conf. Penunjuk berikut kini digunakan untuk menunjukkan peralihan kepada keadaan pemulihan selepas ranap sistem: gunakan fail recovery.signal dan standby.signal.
Sumber: opennet.ru
