Έκδοση PostgreSQL 12

Η ομάδα PostgreSQL ανακοίνωσε την κυκλοφορία του PostgreSQL 12, της πιο πρόσφατης έκδοσης του συστήματος διαχείρισης σχεσιακών βάσεων δεδομένων ανοιχτού κώδικα.
Το PostgreSQL 12 έχει βελτιώσει σημαντικά την απόδοση ερωτημάτων - ειδικά όταν εργάζεστε με μεγάλους όγκους δεδομένων, και έχει επίσης βελτιστοποιήσει τη χρήση του χώρου στο δίσκο γενικά.

Τα νέα χαρακτηριστικά περιλαμβάνουν:

  • υλοποίηση της γλώσσας ερωτημάτων JSON Path (το πιο σημαντικό μέρος του προτύπου SQL/JSON).
  • βελτιστοποίηση της εκτέλεσης κοινών παραστάσεων πίνακα (WITH).
  • υποστήριξη για στήλες που δημιουργούνται

Η κοινότητα συνεχίζει επίσης να εργάζεται για την επεκτασιμότητα και την αξιοπιστία της PostgreSQL, αναπτύσσοντας υποστήριξη για διεθνοποίηση, δυνατότητες ελέγχου ταυτότητας και παρέχοντας ευκολότερους τρόπους διαχείρισης του συστήματος.

Αυτή η έκδοση περιλαμβάνει την υλοποίηση μιας διεπαφής για μηχανές αποθήκευσης με δυνατότητα σύνδεσης, η οποία επιτρέπει πλέον στους προγραμματιστές να δημιουργούν τις δικές τους μεθόδους αποθήκευσης δεδομένων.

Βελτιώσεις απόδοσης

Το PostgreSQL 12 περιλαμβάνει σημαντικές βελτιώσεις απόδοσης και συντήρησης για συστήματα ευρετηρίασης και κατάτμησης.

Τα ευρετήρια B-tree, ο τυπικός τύπος ευρετηρίασης στην PostgreSQL, έχουν βελτιστοποιηθεί στην έκδοση 12 για φόρτους εργασίας που περιλαμβάνουν συχνές τροποποιήσεις ευρετηρίου. Η χρήση του σημείου αναφοράς TPC-C για το PostgreSQL 12 έδειξε μια μέση μείωση κατά 40% στη χρήση χώρου και μια συνολική αύξηση στην απόδοση ερωτημάτων.

Τα ερωτήματα σε σχέση με διαμερισμένους πίνακες έχουν λάβει αξιοσημείωτες βελτιώσεις, ειδικά για πίνακες που αποτελούνται από χιλιάδες διαμερίσματα που απαιτούν εργασία με περιορισμένα μόνο τμήματα των συστοιχιών δεδομένων. Η απόδοση της προσθήκης δεδομένων σε διαμερισμένους πίνακες με χρήση INSERT και COPY έχει βελτιωθεί, καθώς και η δυνατότητα επισύναψης νέου διαμερίσματος χωρίς αποκλεισμό ερωτημάτων.

Η PostgreSQL 12 έχει κάνει πρόσθετες βελτιώσεις στην ευρετηρίαση που επηρεάζουν τη συνολική απόδοση, όπως:

  • μειωμένα γενικά έξοδα κατά τη δημιουργία WAL για τύπους ευρετηρίου GiST, GIN και SP-GiST.
  • τη δυνατότητα δημιουργίας των λεγόμενων καλυπτικών ευρετηρίων (INCLUDE clause) σε ευρετήρια GiST.
  • τη δυνατότητα εκτέλεσης ερωτημάτων «πλησιέστερου γείτονα» (αναζήτηση k-NN) χρησιμοποιώντας τον τελεστή απόστασης (<->) και χρησιμοποιώντας ευρετήρια SP-GiST.
  • υποστήριξη για τη συλλογή στατιστικών στοιχείων για τις πιο κοινές τιμές (MCV) χρησιμοποιώντας CREATE STATISTICS, το οποίο βοηθά στη λήψη καλύτερων σχεδίων ερωτημάτων κατά τη χρήση στηλών των οποίων οι τιμές είναι άνισα κατανεμημένες.

Η μεταγλώττιση JIT με χρήση LLVM, που εισήχθη στο PostgreSQL 11, είναι πλέον ενεργοποιημένη από προεπιλογή. Η μεταγλώττιση JIT βελτιώνει την απόδοση κατά την εργασία με εκφράσεις σε προτάσεις WHERE, λίστες στόχων, συγκεντρωτικά στοιχεία και ορισμένες εσωτερικές λειτουργίες. Είναι διαθέσιμο εάν έχετε μεταγλωττίσει το PostgreSQL με LLVM ή χρησιμοποιείτε ένα πακέτο PostgreSQL που δημιουργήθηκε με ενεργοποιημένο το LLVM.

Βελτιώσεις στις δυνατότητες γλώσσας SQL και τυπική συμβατότητα

Το PostgreSQL 12 εισήγαγε τη δυνατότητα υποβολής ερωτημάτων σε έγγραφα JSON χρησιμοποιώντας εκφράσεις διαδρομής JSON που ορίζονται στο πρότυπο SQL/JSON. Τέτοια ερωτήματα μπορούν να αξιοποιήσουν τους υπάρχοντες μηχανισμούς ευρετηρίασης για έγγραφα που είναι αποθηκευμένα σε μορφή JSONB για την αποτελεσματική ανάκτηση δεδομένων.

Οι κοινές εκφράσεις πίνακα, γνωστές και ως WITH queries, μπορούν πλέον να εκτελεστούν αυτόματα χρησιμοποιώντας αντικατάσταση στο PostgreSQL 12, η ​​οποία με τη σειρά της μπορεί να βοηθήσει στη βελτίωση της απόδοσης πολλών υπαρχόντων ερωτημάτων. Στη νέα έκδοση, ένα τμήμα αντικατάστασης ενός ερωτήματος WITH μπορεί να εκτελεστεί μόνο εάν δεν είναι αναδρομικό, δεν έχει παρενέργειες και αναφέρεται μόνο μία φορά σε ένα επόμενο τμήμα του ερωτήματος.

Το PostgreSQL 12 εισάγει υποστήριξη για "δημιουργημένες στήλες". Όπως περιγράφεται στο πρότυπο SQL, αυτός ο τύπος στήλης υπολογίζει μια τιμή με βάση τα περιεχόμενα άλλων στηλών στον ίδιο πίνακα. Σε αυτήν την έκδοση, η PostgreSQL υποστηρίζει "αποθηκευμένες στήλες που δημιουργούνται", όπου η υπολογισμένη τιμή αποθηκεύεται στο δίσκο.

Διεθνοποίηση

Το PostgreSQL 12 επεκτείνει την υποστήριξη για συλλογές ΜΕΘ επιτρέποντας στους χρήστες να ορίσουν "μη ντετερμινιστικές συλλογές" οι οποίες μπορούν, για παράδειγμα, να επιτρέπουν συγκρίσεις χωρίς διάκριση πεζών-κεφαλαίων ή χωρίς έμφαση.

Έλεγχος ταυτότητας

Η PostgreSQL επεκτείνει την υποστήριξή της για ισχυρές μεθόδους ελέγχου ταυτότητας με αρκετές βελτιώσεις που παρέχουν πρόσθετη ασφάλεια και λειτουργικότητα. Αυτή η έκδοση εισάγει κρυπτογράφηση από την πλευρά του πελάτη και από την πλευρά του διακομιστή για έλεγχο ταυτότητας μέσω διεπαφών GSSAPI, καθώς και τη δυνατότητα για την PostgreSQL να ανακαλύπτει διακομιστές LDAP όταν το PostgreSQL μεταγλωττίζεται με το OpenLDAP.

Επιπλέον, το PostgreSQL 12 υποστηρίζει πλέον μια επιλογή ελέγχου ταυτότητας πολλαπλών παραγόντων. Ο διακομιστής PostgreSQL μπορεί τώρα να ζητήσει από τον πελάτη να παράσχει ένα έγκυρο πιστοποιητικό SSL με το αντίστοιχο όνομα χρήστη χρησιμοποιώντας clientcert=verify-full και να το συνδυάσει με μια ξεχωριστή απαίτηση μεθόδου ελέγχου ταυτότητας (π.χ. scram-sha-256).

διαχείριση

Το PostgreSQL 12 εισήγαγε τη δυνατότητα εκτέλεσης ανακατασκευών ευρετηρίου χωρίς αποκλεισμό χρησιμοποιώντας την εντολή REINDEX CONCURRENTLY. Αυτό επιτρέπει στους χρήστες να αποφεύγουν το χρόνο διακοπής λειτουργίας του DBMS κατά τη διάρκεια μακρών ανακατασκευών ευρετηρίου.

Επιπλέον, στο PostgreSQL 12, μπορείτε να ενεργοποιήσετε ή να απενεργοποιήσετε τα αθροίσματα ελέγχου σελίδων σε ένα σύμπλεγμα τερματισμού λειτουργίας χρησιμοποιώντας την εντολή pg_checksums. Προηγουμένως, τα αθροίσματα ελέγχου σελίδων, μια δυνατότητα που βοηθά στην επαλήθευση της ακεραιότητας των δεδομένων που είναι αποθηκευμένα στο δίσκο, μπορούσε να ενεργοποιηθεί μόνο όταν το σύμπλεγμα PostgreSQL είχε αρχικοποιηθεί χρησιμοποιώντας το initdb.

Πηγή: linux.org.ru

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