Έκδοση PostgreSQL 14 DBMS

Μετά από ένα χρόνο ανάπτυξης, δημοσιεύτηκε ένας νέος σταθερός κλάδος του PostgreSQL 14 DBMS. Οι ενημερώσεις για το νέο κλάδο θα κυκλοφορήσουν σε διάστημα πέντε ετών έως τον Νοέμβριο του 2026.

Βασικές καινοτομίες:

  • Προστέθηκε υποστήριξη για πρόσβαση σε δεδομένα JSON χρησιμοποιώντας εκφράσεις τύπου πίνακα: SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release']; SELECT * FROM test WHERE λεπτομέρειες['attributes']['size'] = '"medium"';

    Μια παρόμοια σύνταξη εφαρμόζεται για τα δεδομένα κλειδιού/τιμής που παρέχονται από τον τύπο hstore. Αυτή η σύνταξη εφαρμόστηκε αρχικά χρησιμοποιώντας ένα καθολικό πλαίσιο, το οποίο στο μέλλον μπορεί να χρησιμοποιηθεί για άλλους τύπους. Παράδειγμα για τον τύπο hstore: INSERT INTO mytable VALUES ('a=>b, c=>d'); ΕΠΙΛΟΓΗ h['a'] FROM mytable; ΕΝΗΜΕΡΩΣΗ ΣΕΤ mytable h['c'] = 'νέο';

  • Η οικογένεια τύπων για τον καθορισμό περιοχών έχει επεκταθεί με νέους τύπους "πολλαπλών εύρους", οι οποίοι σας επιτρέπουν να προσδιορίζετε ταξινομημένες λίστες μη επικαλυπτόμενων περιοχών τιμών. Εκτός από κάθε υπάρχοντα τύπο εύρους, προτείνεται ο δικός του τύπος πολλαπλών εύρους, για παράδειγμα, ο τύπος "int4range" αντιστοιχεί στο "int4multirange" και ο τύπος "daterange" αντιστοιχεί στο "datemultirange". Η χρήση νέων τύπων απλοποιεί τον σχεδιασμό ερωτημάτων που χειρίζονται πολύπλοκες ακολουθίες περιοχών. SELECT '{[3,7), [8,9)}'::int4multirange; SELECT nummultirange(nummrange(1.0, 14.0), numrange(20.0, 25.0));
  • Έχουν γίνει βελτιστοποιήσεις για τη βελτίωση της απόδοσης συστημάτων υψηλού φορτίου που επεξεργάζονται μεγάλο αριθμό συνδέσεων. Σε ορισμένες δοκιμές, παρατηρείται διπλή αύξηση στην απόδοση.
  • Η αποτελεσματικότητα των ευρετηρίων B-tree έχει βελτιωθεί και το πρόβλημα με την αύξηση του δείκτη όταν οι πίνακες ενημερώνονται συχνά έχει επιλυθεί.
  • Προστέθηκε υποστήριξη για τη λειτουργία της γραμμής μετάδοσης αιτημάτων από την πλευρά του πελάτη (που εφαρμόζεται σε επίπεδο libpq), η οποία σας επιτρέπει να επιταχύνετε σημαντικά σενάρια βάσης δεδομένων που σχετίζονται με την εκτέλεση μεγάλου αριθμού μικρών λειτουργιών εγγραφής (INSERT/UPDATE/DELETE) στέλνοντας το επόμενο αίτημα χωρίς να περιμένει το αποτέλεσμα του προηγούμενου. Η λειτουργία βοηθά επίσης στην επιτάχυνση της εργασίας σε συνδέσεις με μεγάλες καθυστερήσεις παράδοσης πακέτων.
  • Βελτιωμένες δυνατότητες για κατανεμημένες διαμορφώσεις που περιλαμβάνουν πολλαπλούς διακομιστές PostgreSQL. Κατά την εφαρμογή της λογικής αναπαραγωγής, καθίσταται πλέον δυνατή η αποστολή σε λειτουργία ροής συναλλαγών που βρίσκονται σε διαδικασία εκτέλεσης, γεγονός που μπορεί να βελτιώσει σημαντικά την απόδοση της αναπαραγωγής μεγάλων συναλλαγών. Επιπλέον, η λογική αποκωδικοποίηση των δεδομένων που λαμβάνονται κατά τη διάρκεια της λογικής αναπαραγωγής έχει βελτιστοποιηθεί.
  • Ο μηχανισμός σύνδεσης εξωτερικών πινάκων Foreign Data Wrapper (postgres_fdw) έχει προσθέσει υποστήριξη για παράλληλη επεξεργασία ερωτημάτων, η οποία προς το παρόν ισχύει μόνο κατά τη σύνδεση με άλλους διακομιστές PostgreSQL. Το postgres_fdw προσθέτει επίσης υποστήριξη για την προσθήκη δεδομένων σε εξωτερικούς πίνακες σε λειτουργία δέσμης και τη δυνατότητα εισαγωγής διαμερισμένων πινάκων καθορίζοντας την οδηγία «ΕΙΣΑΓΩΓΗ ΞΕΝΟΥ ΣΧΗΜΑΤΟΣ».
  • Έχουν γίνει βελτιστοποιήσεις στην υλοποίηση της λειτουργίας VACUUM (συλλογή σκουπιδιών και συσκευασία αποθήκευσης δίσκου). Έχει προστεθεί μια λειτουργία εκκαθάρισης έκτακτης ανάγκης που παρακάμπτει τις μη βασικές λειτουργίες καθαρισμού εάν δημιουργηθούν συνθήκες αναδίπλωσης του αναγνωριστικού συναλλαγής. Μειωμένο κόστος κατά την επεξεργασία ευρετηρίων σε μορφή B-Tree. Η εκτέλεση της λειτουργίας «ΑΝΑΛΥΣΗ», η οποία συλλέγει στατιστικά στοιχεία σχετικά με τη λειτουργία της βάσης δεδομένων, έχει επιταχυνθεί σημαντικά.
  • Προστέθηκε η δυνατότητα διαμόρφωσης της μεθόδου συμπίεσης που χρησιμοποιείται στο σύστημα TOAST, το οποίο είναι υπεύθυνο για την αποθήκευση μεγάλων δεδομένων, όπως μπλοκ κειμένου ή γεωμετρικών πληροφοριών. Εκτός από τη μέθοδο συμπίεσης pglz, το TOAST μπορεί πλέον να χρησιμοποιήσει τον αλγόριθμο LZ4.
  • Τα εργαλεία για την παρακολούθηση της λειτουργίας του ΣΔΒΔ έχουν επεκταθεί. Προστέθηκαν προβολές για την παρακολούθηση της προόδου των εντολών COPY (pg_stat_progress_copy), στατιστικά στοιχεία σχετικά με τις υποδοχές αναπαραγωγής (pg_stat_replication_slots) και τη δραστηριότητα που σχετίζεται με το αρχείο καταγραφής συναλλαγών WAL (pg_stat_wal). Προστέθηκε η συνάρτηση compute_query_id, η οποία επιτρέπει σε διάφορα υποσυστήματα, όπως το pg_stat_activity και το EXPLAIN VERBOSE, να παρακολουθούν αιτήματα εκχωρώντας ένα μοναδικό αναγνωριστικό για κάθε αίτημα.
  • Έχουν προστεθεί βελτιστοποιήσεις στο πρόγραμμα σχεδιασμού ερωτημάτων για τη βελτίωση της παράλληλης επεξεργασίας των ερωτημάτων και τη βελτίωση της απόδοσης της ταυτόχρονης εκτέλεσης διαδοχικών λειτουργιών σάρωσης εγγραφών, την παράλληλη εκτέλεση ερωτημάτων σε PL/pgSQL χρησιμοποιώντας την εντολή "RETURN QUERY" και την παράλληλη εκτέλεση ερωτημάτων στο " ΑΝΑΝΕΩΣΗ ΥΛΙΚΗ ΠΡΟΒΟΛΗ”. Για να βελτιωθεί η απόδοση των κυκλικών ένθετων συγχωνεύσεων (join), έχει υλοποιηθεί υποστήριξη για πρόσθετη προσωρινή αποθήκευση.
  • Τα προηγμένα στατιστικά στοιχεία μπορούν πλέον να χρησιμοποιηθούν για τη βελτιστοποίηση των παραστάσεων και η σταδιακή ταξινόμηση μπορεί τώρα να χρησιμοποιηθεί για τη βελτιστοποίηση των συναρτήσεων παραθύρου.
  • Οι αποθηκευμένες διαδικασίες που σας επιτρέπουν να διαχειρίζεστε συναλλαγές σε μπλοκ κώδικα υποστηρίζουν πλέον τον ορισμό των δεδομένων επιστροφής χρησιμοποιώντας παραμέτρους "OUT".
  • Προστέθηκε η συνάρτηση date_bin σε τιμές στρογγυλής χρονικής σήμανσης σύμφωνα με ένα καθορισμένο διάστημα. SELECT date_bin('15 λεπτά', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01'); 2020-02-11 15:30:00
  • Προστέθηκαν εκφράσεις SEARCH και CYCLE που ορίζονται στο πρότυπο SQL για να διευκολύνεται η παραγγελία και ο εντοπισμός κύκλων σε αναδρομικές εκφράσεις κοινού πίνακα (CTE). ΜΕ ΑΝΑΔΡΟΜΙΚΗ αναζήτηση_δέντρο(αναγνωριστικό, σύνδεσμος, δεδομένα) ΩΣ ( SELECT t.id, t.link, t.data FROM tree t UNION ALL SELECT t.id, t.link, t.data FROM tree t, search_tree st WHERE t. id = st.link ) ΒΑΘΟΣ ΑΝΑΖΗΤΗΣΗΣ ΠΡΩΤΑ ΑΠΟ id SETcolol SELECT * FROM search_tree ORDER BY ordercol;
  • Στο βοηθητικό πρόγραμμα psql, η αυτόματη συμπλήρωση εντολών με καρτέλες έχει βελτιωθεί, η δυνατότητα εμφάνισης ορισμάτων συνάρτησης έχει προστεθεί στην εντολή "\df" και τα εμφανιζόμενα στατιστικά στοιχεία έχουν επεκταθεί στην εντολή "\dX".
  • Είναι δυνατή η εκχώρηση προνομίων μόνο για ανάγνωση ή εγγραφή σε χρήστες. Τα δικαιώματα μπορούν να οριστούν σε μεμονωμένους πίνακες, προβολές και σχήματα χρησιμοποιώντας τους προκαθορισμένους ρόλους pg_read_all_data και pg_write_all_data. ΧΟΡΗΓΗΣΗ pg_read_all_data ΣΤΟΝ χρήστη1.
  • Οι νέες εγκαταστάσεις προεπιλογή για έλεγχο ταυτότητας κωδικού πρόσβασης χρησιμοποιώντας SCRAM-SHA-256 αντί για md5 (η παράμετρος "password_encryption" κατά τη δημιουργία του postgresql.conf έχει πλέον οριστεί σε 'scram-sha-256').

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο