Εκμάθηση κατατμήσεων PostgreSQL

Ekmathese Katatmeseon Postgresql



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

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

Πώς να δημιουργήσετε τα διαμερίσματα PostgreSQL

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







1. Διαμέριση λίστας

Πριν σκεφτούμε οποιαδήποτε κατάτμηση, πρέπει να δημιουργήσουμε τον πίνακα που θα χρησιμοποιήσουμε για τα διαμερίσματα. Κατά τη δημιουργία του πίνακα, ακολουθήστε τη δεδομένη σύνταξη για όλα τα διαμερίσματα:



CREATE TABLE table_name(column1 data_type, column2 data_type) PARTITION BY (partition_key);

Το 'table_name' είναι το όνομα για τον πίνακά σας μαζί με τις διαφορετικές στήλες που θα έχει ο πίνακας και τους τύπους δεδομένων τους. Για το 'partition_key', είναι η στήλη με την οποία θα γίνει η κατάτμηση. Για παράδειγμα, η παρακάτω εικόνα δείχνει ότι δημιουργήσαμε τον πίνακα 'μαθήματα' με τρεις στήλες. Επιπλέον, ο τύπος διαμερισμάτων μας είναι LIST και επιλέγουμε τη στήλη σχολής ως κλειδί διαμερισμάτων:







Μόλις δημιουργηθεί ο πίνακας, πρέπει να δημιουργήσουμε τις διαφορετικές κατατμήσεις που χρειαζόμαστε. Για αυτό, προχωρήστε με την ακόλουθη σύνταξη:

CREATE TABLE partition_table PARTITION OF main_table FOR VALUES IN (VALUE);

Για παράδειγμα, το πρώτο παράδειγμα στην ακόλουθη εικόνα δείχνει ότι δημιουργήσαμε έναν πίνακα διαμερισμάτων με το όνομα 'Fset' που περιέχει όλες τις τιμές στη στήλη 'faculty' που επιλέξαμε ως κλειδί διαμέρισής μας του οποίου η τιμή είναι 'FSET'. Χρησιμοποιήσαμε παρόμοια λογική για τις άλλες δύο κατατμήσεις που δημιουργήσαμε.



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

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

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

Παρατηρήστε πώς κάθε πίνακας με διαμερίσματα περιέχει μόνο τις εγγραφές που ταιριάζουν με τα κριτήρια που ορίζονται κατά την κατάτμηση. Έτσι λειτουργεί η κατάτμηση κατά λίστα.

2. Διαμέριση εύρους

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

Η σύνταξή του για τη δημιουργία του κύριου πίνακα είναι η εξής:

CREATE TABLE table_name(column1 data_type, column2 data_type) PARTITION BY RANGE (partition_key);

Δημιουργήσαμε τον πίνακα 'cust_orders' και τον προσδιορίσαμε ώστε να χρησιμοποιεί την ημερομηνία ως το 'partition_key' μας.

Για να δημιουργήσετε τα διαμερίσματα, χρησιμοποιήστε την ακόλουθη σύνταξη:

CREATE TABLE partition_table PARTITION OF main_table FOR VALUES FROM (start_value) TO (end_value);

Ορίσαμε τα διαμερίσματα μας να λειτουργούν ανά τρίμηνο χρησιμοποιώντας τη στήλη 'ημερομηνία'.

Μετά τη δημιουργία όλων των κατατμήσεων και την εισαγωγή των δεδομένων, έτσι φαίνεται ο πίνακάς μας:

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

3. Κατατμήσεις κατακερματισμού

Το τελευταίο κριτήριο κατάτμησης που θα συζητήσουμε είναι η χρήση κατακερματισμού. Ας δημιουργήσουμε γρήγορα τον κύριο πίνακα χρησιμοποιώντας την ακόλουθη σύνταξη:

CREATE TABLE table_name(column1 data_type, column2 data_type) PARTITION BY HASH (partition_key);

Κατά τη διαμέριση με κατακερματισμό, πρέπει να δώσετε το συντελεστή και το υπόλοιπο, τις σειρές που θα διαιρεθούν με την τιμή κατακερματισμού του καθορισμένου 'κλειδιού_διαμερίσματος'. Για την περίπτωσή μας, χρησιμοποιούμε συντελεστή 4.

Η σύνταξή μας είναι η εξής:

CREATE TABLE partition_table PARTITION OF main_table ΓΙΑ ΤΙΜΕΣ ΜΕ (MODULUS num1, REMAINDER num2);

Οι κατατμήσεις μας είναι οι εξής:

Για το 'main_table', περιέχει τις εγγραφές που φαίνονται παρακάτω:

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

συμπέρασμα

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