Topik ini menjelaskan cara menggunakan fitur Elastic Parallel Query (ePQ).
Catatan penggunaan
Pastikan versi kluster Anda didukung oleh fitur ePQ.
Query paralel elastis satu node:
Mesin database: 8.0.1 dengan versi revisi 8.0.1.0.5 atau lebih baru.
Edisi database: Enterprise Edition.
Query paralel elastis satu node:
Mesin database: 8.0.2 dengan versi revisi 8.0.2.1.4.1 atau lebih baru.
Edisi database: Enterprise Edition.
Query paralel elastis multi-node:
Mesin database: 8.0.2 dengan versi revisi 8.0.2.2.6 atau lebih baru.
Edisi database: Enterprise Edition.
Pastikan Anda mengetahui batasan dan masalah kompatibilitas dari fitur ePQ. Untuk informasi lebih lanjut, lihat Batasan dan Masalah Kompatibilitas.
Baik node baca-saja maupun node utama mendukung fitur ePQ. Secara default, ePQ dinonaktifkan pada node utama. Anda dapat mengaktifkan fitur ini sesuai kebutuhan. Untuk informasi lebih lanjut, lihat Pengaturan DOP Adaptif.
Aktifkan atau nonaktifkan ePQ
Aktifkan ePQ
Masuk ke PolarDB console. Di bagian Database Connections pada halaman Basic Information, pilih titik akhir dan klik Configure. Di dialog Modify Endpoint Settings, pilih On untuk Query Paralel dan konfigurasikan nilai Parallelism.
Pengaturan yang Direkomendasikan dan Deskripsi
Parallelism: Jumlah maksimum thread pekerja yang dapat berjalan secara bersamaan dalam satu node komputasi untuk satu query. Jumlah maksimum thread pekerja yang dapat berjalan secara bersamaan dalam satu query adalah hasil kali derajat paralelisme (DOP) dan jumlah node.
Tingkatkan nilai Paralelisme secara bertahap kecil. Kami merekomendasikan agar Anda tidak menggunakan nilai yang melebihi seperempat dari jumlah total core CPU. Sebagai contoh, Anda dapat mengatur nilai Paralelisme menjadi 2. Anda dapat memeriksa utilisasi CPU keesokan harinya. Jika utilisasi CPU rendah, tingkatkan nilainya. Jika utilisasi CPU tinggi, jangan tingkatkan nilainya.
ePQ hanya diaktifkan untuk koneksi yang dibuat setelah Anda menghidupkan fitur tersebut.
DOP dapat dikonfigurasi di konsol atau dengan menggunakan parameter kluster:
Parameter sistem
loose_max_parallel_degreeberlaku untuk semua node dalam kluster saat ini dan memengaruhi semua koneksi dalam kluster. Namun, penyesuaian yang dilakukan terhadap parameter ini di Konsol PolarDB hanya berlaku untuk koneksi saat ini.Anda dapat mengonfigurasi DOP di konsol atau dengan menggunakan parameter
loose_max_parallel_degree. Pengaturan di konsol yang berlaku. Kami merekomendasikan agar Anda menggunakan konsol untuk mengaktifkan ePQ.Jika Anda tidak mengaktifkan ePQ di konsol tetapi mengatur
loose_max_parallel_degreeke nilai lebih besar dari 0, ePQ akan diaktifkan.CatatanParameter
loose_max_parallel_degreemenentukan DOP maksimum untuk query individu, yaitu jumlah maksimum pekerja yang digunakan untuk menjalankan query secara paralel. Untuk informasi lebih lanjut, lihat Parameter Konfigurasi.
Nonaktifkan ePQ
Masuk ke PolarDB console. Di bagian Database Connections pada halaman Basic Information, pilih titik akhir dan klik Configure. Di dialog Modify Endpoint Settings, pilih Off untuk Query Paralel.
Catatan:
ePQ hanya dinonaktifkan untuk koneksi yang dibuat setelah Anda mematikan fitur tersebut.
Setelah Anda menonaktifkan ePQ di konsol, pastikan bahwa parameter
loose_max_parallel_degreedisetel ke 0 untuk memastikan bahwa ePQ sepenuhnya dinonaktifkan.CatatanParameter
loose_max_parallel_degreemenentukan DOP maksimum untuk query individu, yaitu jumlah maksimum pekerja yang digunakan untuk menjalankan query secara paralel. Untuk informasi lebih lanjut, lihat Parameter Konfigurasi.
Konfigurasi ePQ
Anda dapat mengonfigurasi serangkaian parameter untuk mengelola fitur ePQ. Tabel berikut mencantumkan beberapa parameter utama. Untuk informasi lebih lanjut, lihat Kebijakan DOP.
Tipe | Deskripsi |
Pengaturan DOP Adaptif | Anda dapat mengatur DOP untuk satu query dengan mengonfigurasi parameter
|
Tentukan apakah pengoptimal dapat mengaktifkan ePQ | PolarDB menyediakan dua ambang batas untuk menentukan apakah pengoptimal dapat mengaktifkan fitur query paralel elastis. Jika pernyataan SQL memenuhi salah satu dari kondisi berikut, pengoptimal mengaktifkan fitur query paralel elastis.
|
Tentukan apakah akan mengaktifkan ePQ multi-node | PolarDB memiliki dua ambang batas untuk menentukan apakah akan mengaktifkan query paralel elastis multi-node. Jika pernyataan SQL memenuhi salah satu dari kondisi berikut, query paralel elastis multi-node dapat digunakan.
|
Gunakan petunjuk untuk mengontrol ePQ
Anda dapat mengoptimalkan pernyataan SQL individu dengan menggunakan petunjuk untuk menentukan apakah pengoptimal mengaktifkan ePQ. Anda juga dapat menggunakan petunjuk untuk mengonfigurasi DOP dan tabel yang perlu mengaktifkan ePQ. Sebagai contoh, jika ePQ dinonaktifkan oleh sistem, Anda dapat menggunakan petunjuk untuk mempercepat query SQL lambat yang sering dieksekusi. Untuk informasi lebih lanjut, lihat Petunjuk Paralel.
Batasan dan masalah kompatibilitas
Batasan
PolarDB terus meningkatkan fitur query paralel. Fitur ini tidak dapat meningkatkan kinerja dalam situasi berikut:
Query pada tabel
non-Innodb.Query yang menggunakan indeks teks penuh.
Prosedur tersimpan, yang harus dieksekusi oleh pemimpin.Tabel yang dipindai menggunakan join
INDEX-MERGE.Query dalam transaksi serializable.
Pernyataan
INSERT ... SELECT dan REPLACE ... SELECTdalam transaksi ketika tingkat isolasi adalahBaca yang Dapat Diulang.
Masalah kompatibilitas
Jumlah pesan kesalahan mungkin meningkat.
Anggaplah Anda menggunakan eksekusi sekuensial untuk pernyataan dan pesan kesalahan terjadi. Jika Anda menggunakan eksekusi paralel untuk pernyataan yang sama, lebih banyak pesan kesalahan mungkin dikembalikan.
Masalah presisi mungkin terjadi.
Untuk eksekusi sekuensial, tidak ada hasil perantara yang perlu disimpan. Untuk eksekusi paralel, Anda mungkin perlu menyimpan hasil perantara. Jika hasil perantara adalah angka floating-point, presisi angka floating-point tersebut mungkin berbeda dari presisi eksekusi paralel. Hal ini dapat mengakibatkan perbedaan dalam hasil eksekusi paralel dan sekuensial.
Ukuran paket jaringan atau hasil perantara melebihi batas atas yang ditentukan oleh parameter
max_allowed_packet.Untuk eksekusi sekuensial, tidak ada hasil perantara yang dihasilkan. Untuk eksekusi paralel, hasil perantara mungkin dihasilkan. Jika ukuran hasil perantara melebihi batas atas yang ditentukan oleh parameter
max_allowed_packet, pesan kesalahan mungkin dikembalikan. Untuk menyelesaikan masalah ini, Anda dapat meningkatkan nilai parametermax_allowed_packet. Untuk informasi lebih lanjut tentang cara memodifikasi parameter, lihat Tentukan Parameter Kluster dan Node.Urutan set hasil untuk eksekusi paralel mungkin berbeda dari urutan untuk eksekusi sekuensial.
Jika pernyataan
SELECT ... LIMIT nyang tidak mengandung kata kunciORDER BYdieksekusi secara paralel, urutan set hasil yang dikembalikan mungkin tidak konsisten dengan urutan eksekusi. Beberapa pekerja dieksekusi secara bersamaan. Oleh karena itu, kecepatan eksekusi pekerja tidak pasti selama setiap eksekusi. Setelah pemimpin mengambil cukup data, hasil akhir dikembalikan. Akibatnya, urutan set hasil yang dikembalikan mungkin tidak konsisten dengan urutan eksekusi.Jumlah catatan data yang memiliki kunci baris meningkat.
Jika pernyataan
SELECT ... FROM ... FOR SHAREdieksekusi secara paralel, InnoDB mengunci setiap baris data yang diakses. Oleh karena itu, jumlah catatan yang memiliki kunci baris mungkin lebih banyak daripada kasus eksekusi non-paralel. Fenomena ini normal dalam kasus eksekusi paralel.



