Tutorial Pembahagian PostgreSQL

Tutorial Pembahagian Postgresql



Untuk mana-mana pangkalan data, prestasi ialah satu metrik yang mesti ditangani untuk kebolehpercayaan yang berkesan, terutamanya apabila data yang besar terlibat. Dengan PostgreSQL, anda mesti mencipta partition jadual untuk menjimatkan masa dan sumber yang diperlukan untuk mengimbas jadual semasa mencari rekod. Dengan membahagikan jadual besar kepada bahagian yang lebih kecil, kurang pertukaran memori diperlukan dan aplikasi anda akan berprestasi lebih baik kerana ia menjimatkan operasi pangkalan data.

Siaran ini merangkumi pembahagian PostgreSQL. Kami akan membincangkan pilihan pembahagian yang berbeza yang boleh anda gunakan dan memberi contoh tentang cara menggunakannya untuk pemahaman yang lebih baik.

Bagaimana untuk Mencipta Partition PostgreSQL

Mana-mana pangkalan data boleh mengandungi banyak jadual dengan berbilang entri. Untuk pengurusan yang mudah, anda harus membahagikan jadual yang merupakan rutin gudang data yang hebat dan disyorkan untuk pengoptimuman pangkalan data dan untuk membantu dalam kebolehpercayaan. Anda boleh membuat partition berbeza termasuk senarai, julat dan cincang. Mari kita bincangkan setiap satu secara terperinci.







1. Pembahagian Senarai

Sebelum mempertimbangkan sebarang pembahagian, kami mesti mencipta jadual yang akan kami gunakan untuk pembahagian. Apabila membuat jadual, ikut sintaks yang diberikan untuk semua partition:



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

'nama_jadual' ialah nama untuk jadual anda di samping lajur berbeza yang akan ada pada jadual dan jenis datanya. Untuk 'kunci_partition', ia adalah lajur yang mana pembahagian akan berlaku. Sebagai contoh, imej berikut menunjukkan bahawa kami mencipta jadual 'kursus' dengan tiga lajur. Selain itu, jenis pembahagian kami ialah LIST, dan kami memilih lajur fakulti sebagai kunci pembahagian kami:







Setelah jadual dibuat, kita mesti mencipta partition berbeza yang kita perlukan. Untuk itu, teruskan dengan sintaks berikut:

CIPTA JADUAL partition_table PARTITION OF main_table UNTUK NILAI DALAM (VALUE);

Sebagai contoh, contoh pertama dalam imej berikut menunjukkan bahawa kami mencipta jadual partition bernama 'Fset' yang menyimpan semua nilai dalam lajur 'fakulti' yang kami pilih sebagai kunci partition kami yang nilainya ialah 'FSET'. Kami menggunakan logik yang sama untuk dua partition lain yang kami buat.



Sebaik sahaja anda mempunyai partition, anda boleh memasukkan nilai ke dalam jadual utama yang kami buat. Setiap nilai yang anda masukkan dipadankan dengan pembahagian masing-masing berdasarkan nilai dalam kekunci partition yang anda pilih.

Jika kita menyenaraikan semua entri dalam jadual utama, kita dapat melihat bahawa ia mempunyai semua entri yang kita masukkan.

Untuk mengesahkan bahawa kami berjaya mencipta partition, mari semak rekod dalam setiap partition yang dibuat.

Perhatikan bagaimana setiap jadual pembahagian hanya memegang entri yang sepadan dengan kriteria yang ditakrifkan semasa pembahagian. Begitulah cara pembahagian mengikut senarai berfungsi.

2. Pembahagian Julat

Kriteria lain untuk mencipta partition adalah menggunakan pilihan RANGE. Untuk ini, kita mesti menentukan nilai mula dan akhir untuk digunakan untuk julat. Menggunakan kaedah ini sesuai apabila bekerja dengan kurma.

Sintaksnya untuk mencipta jadual utama adalah seperti berikut:

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

Kami mencipta jadual 'cust_orders' dan menentukannya untuk menggunakan tarikh sebagai 'partition_key' kami.

Untuk mencipta partition, gunakan sintaks berikut:

CIPTA JADUAL partition_table PARTITION OF main_table UNTUK NILAI DARI (nilai_mula) HINGGA (nilai_akhir);

Kami menentukan partition kami untuk berfungsi setiap suku tahun menggunakan lajur 'tarikh'.

Selepas membuat semua partition dan memasukkan data, ini adalah bagaimana jadual kami kelihatan:

Jika kami menyemak entri dalam partition yang dibuat, kami mengesahkan bahawa partitioning kami berfungsi dan kami hanya mempunyai rekod yang sesuai mengikut kriteria partitioning yang kami tetapkan. Untuk semua entri baharu yang anda tambahkan pada jadual anda, ia akan ditambahkan pada partition masing-masing secara automatik.

3. Pembahagian Hash

Kriteria pembahagian terakhir yang akan kita bincangkan ialah menggunakan cincang. Mari buat jadual utama dengan cepat menggunakan sintaks berikut:

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

Apabila membahagikan dengan cincang, anda mesti membekalkan modulus dan baki, baris yang akan dibahagikan dengan nilai cincang 'kunci_partition' yang anda tentukan. Untuk kes kami, kami menggunakan modulus 4.

Sintaks kami adalah seperti berikut:

CIPTA TABLE partition_table PARTITION OF main_table UNTUK NILAI DENGAN (MODULUS num1, REMAINDER num2);

Partition kami adalah seperti berikut:

Untuk 'jadual_utama', ia mengandungi entri yang ditunjukkan dalam perkara berikut:

Untuk partition yang dibuat, kami boleh mengakses entri mereka dengan cepat dan mengesahkan bahawa partition kami berfungsi.

Kesimpulan

Partition PostgreSQL ialah cara yang berguna untuk mengoptimumkan pangkalan data untuk menjimatkan masa dan meningkatkan kebolehpercayaan. Kami membincangkan pembahagian secara terperinci termasuk pilihan berbeza yang tersedia. Selain itu, kami menyediakan contoh tentang cara melaksanakan partition. Cuba mereka keluar!