Anda dapat menggunakan fitur Elastic Parallel Query untuk mempercepat proses pembuatan indeks Pohon-B dan indeks global dari indeks Pohon-B. Topik ini menjelaskan cara kerja fitur ini serta langkah-langkah penggunaannya.
Cara kerjanya
Ketika PolarDB for PostgreSQL membuat indeks, layanan ini memindai tabel heap yang ingin diindeks dan membuat entri terindeks. Kemudian, layanan ini membangun Pohon-B berdasarkan entri tersebut.
Dengan menggunakan fitur ini, sistem secara otomatis membuat proses query coordinator (QC) untuk memindai tabel heap secara paralel. Proses pembuatan indeks kemudian menerima hasil pemindaian dari proses QC dan membangun indeks.
Peringatan
Fitur ini hanya dapat digunakan untuk mempercepat pembuatan indeks pada kolom umum. Fitur ini tidak mendukung sintaks seperti CONCURRENTLY atau INCLUDE dalam pembuatan indeks.
Indeks tidak dapat dibuat untuk kolom yang ditentukan oleh ekspresi.
Parameter
Untuk menggunakan fitur Elastic Parallel Query dalam mempercepat pembuatan indeks, konfigurasikan parameter berikut:
Parameter | Deskripsi |
polar_px_enable_btbuild | Menentukan apakah akan menggunakan fitur ini untuk mempercepat pembuatan indeks. Nilai default: off. Nilai valid:
|
polar_px_dop_per_node | Menentukan derajat paralelisme yang berlaku saat Anda menggunakan fitur ini untuk mempercepat proses pembuatan indeks. Nilai default adalah 1. Kami merekomendasikan Anda menyetel nilai menjadi 8 atau 16. Parameter ini juga menentukan derajat paralelisme untuk Elastic Parallel Query. Untuk informasi lebih lanjut, lihat Jalankan kueri analitik. Anda juga dapat menyetel parameter ini ke on untuk peran database tertentu. |
polar_px_enable_replay_wait | Jika Anda menyetel polar_px_enable_btbuild ke on, parameter polar_px_enable_replay_wait secara otomatis berlaku untuk sesi saat ini. Ini memastikan bahwa entri terbaru dalam tabel diindeks. Setelah indeks dibuat, sistem menyetel ulang parameter ke nilai default di database. |
polar_bt_write_page_buffer_size | Menentukan kebijakan pada operasi I/O tulis saat indeks dibuat. Secara default, parameter disetel ke 0. Nilai ini menunjukkan bahwa entri terindeks disiram ke disk blok demi blok saat Anda membuat indeks. Satuan pengukuran adalah blok. Nilai maksimum adalah 8192. Kami merekomendasikan Anda menyetel nilai menjadi 4096.
|
Contoh
Informasi Latar Belakang
Eksekusi pernyataan berikut untuk membuat tabel bernama test:
CREATE TABLE test(id int,id2 int);Kueri skema tabel:
\d test
Table "public.test"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+---------
id | integer | | |
id2 | integer | | |Untuk menggunakan Elastic Parallel Query dalam mempercepat pembuatan indeks tabel test, ikuti langkah-langkah berikut:
Setel parameter polar_px_enable_btbuild ke on untuk mengaktifkan fitur Elastic Parallel Query.
Eksekusi pernyataan berikut:
SET polar_px_enable_btbuild=on;Periksa apakah konfigurasi telah diterapkan:
SHOW polar_px_enable_btbuild;Hasil berikut akan ditampilkan:
polar_px_enable_btbuild ------------------------- on (1 row)Eksekusi pernyataan berikut untuk membuat indeks:
CREATE INDEX t ON test(id) WITH(px_build=on);Kueri skema tabel:
\d test Table "public.test" Column | Type | Collation | Nullable | Default --------+---------+-----------+----------+--------- id | integer | | | id2 | integer | | | Indexes: "t" btree (id) WITH (px_build=finish)
Untuk menggunakan fitur Elastic Parallel Query, tambahkan opsi px_build dalam pernyataan CREATE INDEX.
Setelah indeks dibuat, informasi tipe indeks mencakup bidang (px_build=finish), yang menunjukkan bahwa indeks dibuat menggunakan fitur Elastic Parallel Query.
Jika polar_px_enable_btbuild disetel ke on tetapi opsi px_build tidak ditambahkan dalam pernyataan CREATE INDEX, metode asli dari PolarDB for PostgreSQL akan digunakan untuk membuat indeks. Contoh:
CREATE INDEX t ON test(id);Kueri skema tabel:
\d test
Table "public.test"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+---------
id | integer | | |
Indexes:
"t" btree (id)Data kinerja
Pembuatan indeks untuk tabel besar sekitar lima kali lebih cepat menggunakan fitur Elastic Parallel Query dibandingkan dengan metode asli dari PolarDB for PostgreSQL.