Όπως συμβαίνει κάθε χρόνο μεταξύ Σεπτεμβρίου και Οκτωβρίου, ανακοινώθηκε η κυκλοφορία της νέας έκδοσης της PostgreSQL 17 και, όπως και με όλες τις προηγούμενες εκδόσεις, προτεραιότητα παραμένει η βελτίωση της απόδοσης και η βελτιστοποίηση των πόρων, ειδικά για λειτουργίες όπως VACUUM, I/O και ερωτήματα, ενώ το πιο σημαντικό νέο χαρακτηριστικό αυτής της έκδοσης είναι το σταδιακό αντίγραφο ασφαλείας.
Για τους επαγγελματίες χρήστες, η ενημέρωση φέρνει μια σειρά από βελτιώσεις που απλοποιούν τη διαχείριση και τη χρήση της βάσης δεδομένων. Αν και η PostgreSQL ήταν ιστορικά μια σχεσιακή βάση δεδομένων, αυτή η έκδοση επεκτείνει την ενσωμάτωσή της με προηγμένη λειτουργικότητα για εργασία με έγγραφα JSON, μια δυνατότητα που συνήθως σχετίζεται με το MongoDB Atlas.
Τι νέο υπάρχει στο PostgreSQL 17
Σε αυτήν τη νέα έκδοση της PostgreSQL 17, έχει εισαχθεί μια νέα δομή δεδομένων στη λειτουργία VACUUM, η οποία μειώνει την κατανάλωση μνήμης έως και 20 φορές, επιτρέποντας σε αυτές τις λειτουργίες να είναι ταχύτερες και πιο αποτελεσματικές όσον αφορά τους κοινόχρηστους πόρους.
Όσον αφορά τις βελτιώσεις στην απόδοση, η διαχείριση των καταχωρητών διαγραφής (WAL) έχει βελτιστοποιηθεί, επιτυγχάνοντας έως και διπλάσια απόδοση εγγραφής σε συστήματα με πολλά ταυτόχρονα ερωτήματα. Έχει προταθεί μια διεπαφή ροής εισόδου/εξόδου για τη βελτίωση της διαδοχικής αναζήτησης και των ενημερώσεων στατιστικών στοιχείων μετά τη λειτουργία ANALYZE.
Επιπλέον, έχουν εφαρμοστεί βελτιώσεις σε ερωτήματα με όρους "IN" κατά τη χρήση ευρετηρίων B-tree, καθώς και στην παράλληλη κατασκευή ευρετηρίων BRIN, στη βελτιστοποίηση των ελέγχων "NOT NULL" και στην επιτάχυνση της επεξεργασίας κοινών εκφράσεων πίνακα (CTE). Για εντατικούς υπολογισμούς, έχουν ενσωματωθεί εντολές SIMD, όπως η AVX-512, για την επιτάχυνση λειτουργιών όπως η συνάρτηση `bit_count`.
Μια άλλη καινοτομία που ξεχωρίζει είναι το νέες δυνατότητες για JSON, από το Οι χρήστες μπορούν πλέον να ρωτούν τύπους δεδομένων JSON χρησιμοποιώντας τυπικές εντολές SQL. Αυτό είναι δυνατό χάρη στη νέα λειτουργικότητα του πίνακα json, το οποίο μετατρέπει τα δεδομένα JSON σε δομή πίνακα. Από εκεί, οι χρήστες μπορούν να κάνουν ερωτήματα χρησιμοποιώντας την ρήτρα FROM σε SQL, επιτρέποντας την επιστροφή δεδομένων σε σχεσιακή μορφή. Προστέθηκε η λειτουργία "JSON_TABLE" για τη μετατροπή δεδομένων JSON σε τυπικούς πίνακες PostgreSQL.
Αξιοσημείωτη είναι επίσης η νέα λειτουργικότητα σταδιακής δημιουργίας αντιγράφων ασφαλείας στην PostgreSQL 17, η οποία σας επιτρέπει να δημιουργείτε αντίγραφα ασφαλείας μόνο των αλλαγών που έγιναν από το τελευταίο πλήρες ή σταδιακό αντίγραφο ασφαλείας , βελτιστοποιώντας τη χρήση εύρους ζώνης και μειώνοντας τις απαιτήσεις αποθήκευσης. Ενώ η PostgreSQL προσέφερε ήδη λύσεις όπως η αρχειοθέτηση WAL, η οποία αναπαρήγαγε το Write-Ahead Log (WAL) για τη διατήρηση των απαραίτητων ενοτήτων της βάσης δεδομένων, η έκδοση 17 εισάγει, για πρώτη φορά, έναν εγγενή μηχανισμό για την εκτέλεση σταδιακών αντιγράφων ασφαλείας. Αυτό το σύστημα όχι μόνο ελαχιστοποιεί τις λειτουργικές διακοπές έχοντας μικρότερο αντίκτυπο στην απόδοση, αλλά μειώνει επίσης σημαντικά τους χρόνους αποκατάστασης - μια βασική πτυχή, καθώς η επαναφορά αντιγράφων ασφαλείας είναι συχνά μια αργή και απογοητευτική διαδικασία για τους χρήστες.
Υλοποιήθηκε μια μηχανή ανεξάρτητη από την πλατφόρμα για την επεξεργασία των ιδιοτήτων των τοπικών ρυθμίσεων, επιτρέποντας τη συνεπή ταξινόμηση των αποτελεσμάτων του ερωτήματος. Αυτή η μηχανή λαμβάνει υπόψη παράγοντες όπως η παρουσία ειδικών χαρακτήρων και η ευαισθησία πεζών-κεφαλαίων κατά την ταξινόμηση τιμών. Ο μηχανισμός λογικής αναπαραγωγής απλοποιεί πλέον τη διαδικασία αναβάθμισης της βάσης δεδομένων, εξαλείφοντας την ανάγκη διαγραφής υποδοχών λογικής αναπαραγωγής ή επανασυγχρονισμού δεδομένων κατά τη μετεγκατάσταση σε μια νέα έκδοση.
Άλλες αξιοσημείωτες αλλαγές περιλαμβάνουν :
- Η εξαγωγή μεγάλων συμβολοσειρών με την εντολή «COPY» έχει επιταχυνθεί έως και δύο φορές.
- Βελτιστοποιημένη αντιγραφή όταν ταιριάζουν οι κωδικοποιήσεις πηγής και προορισμού.
- Η επιλογή "ON_ERROR" προστέθηκε για να επιτραπεί η συνέχιση της εισαγωγής παρά τα σφάλματα κατά την εισαγωγή δεδομένων.
- Προστέθηκε η δυνατότητα χρήσης στηλών με μοναδικά αναγνωριστικά σε διαμερισμένους πίνακες.
- Εφάρμοσε μια δυνατότητα ανακατεύθυνσης για μετάβαση σε έναν εφεδρικό διακομιστή σε διαμορφώσεις ανεκτικές σε σφάλματα.
- Προστέθηκε ένα νέο βοηθητικό πρόγραμμα pg_createsubscriber για τη μετατροπή ενός φυσικού αντιγράφου σε ένα λογικό αντίγραφο.
- Παρουσιάστηκε η επιλογή «sslnegotiation» για τη διαπραγμάτευση ασφαλών συνδέσεων TLS απευθείας χρησιμοποιώντας την επέκταση ALPN TLS.
- Προστέθηκε προκαθορισμένος ρόλος pg_maintain, ο οποίος δίνει στους χρήστες το δικαίωμα να εκτελούν λειτουργίες που σχετίζονται με τη συντήρηση DBMS
Τέλος, αν ενδιαφέρεστε να μάθετε περισσότερα, μπορείτε να βρείτε τις λεπτομέρειες στον παρακάτω σύνδεσμο.