All Products
Search
Document Center

PolarDB:Parameter kueri paralel

Last Updated:Mar 28, 2026

PolarDB for MySQL menyediakan dua kelompok item konfigurasi untuk fitur query paralel elastis: parameter kluster yang dapat Anda atur di Konsol PolarDB dan variabel status tingkat sesi yang dapat Anda kueri saat runtime.

Parameter kueri paralel

Catatan

Semua parameter kluster di Konsol PolarDB menggunakan awalan loose_ untuk kompatibilitas dengan file konfigurasi MySQL. Saat memodifikasi parameter di Konsol PolarDB, pilih parameter yang mencakup awalan loose_.

Parameter berikut mengontrol cara kerja query paralel elastis, mencakup tingkat paralelisme (DOP) untuk kueri individual, anggaran total parallel worker, perilaku antrian, serta ambang batas jumlah baris dan biaya yang memicu eksekusi paralel.

ParameterRuang LingkupDeskripsi
loose_max_parallel_degreeGlobal, sessionDOP maksimum untuk satu kueri. Menetapkan batas atas jumlah parallel worker untuk kueri tersebut. Nilai yang valid: 0–1024. Default: 0 (query paralel elastis dinonaktifkan).
loose_max_parallel_workersGlobalJumlah maksimum parallel worker untuk seluruh kueri. Kueri yang melebihi batas ini akan diantrikan. Nilai yang valid: 1–10.000. Default: dua kali jumlah core CPU.
loose_queuing_parallel_degree_limitGlobalJumlah maksimum nilai DOP yang diizinkan dalam antrian pada waktu tertentu. Kueri yang melebihi batas ini akan kembali ke eksekusi sekuensial. Nilai yang valid: 0–10.000. Default: 64.
loose_pq_max_queuing_timeGlobal, sessionWaktu maksimum yang boleh ditunggu oleh suatu kueri dalam antrian. Kueri yang melebihi batas ini akan kembali ke eksekusi sekuensial. Nilai yang valid: 0–18.446.744.073.709.551.615. Default: 200 (milidetik).
loose_parallel_degree_policyGlobalKebijakan pemilihan DOP untuk kueri individual. Nilai yang valid: TYPICAL, AUTO, REPLICA_AUTO (default). Untuk detailnya, lihat Kebijakan DOP.
loose_records_threshold_for_parallelismSessionJumlah minimum baris yang harus dipindai oleh suatu kueri sebelum pengoptimal mempertimbangkan eksekusi paralel. Nilai yang valid: 0–18.446.744.073.709.551.615. Default: 10000.
loose_cost_threshold_for_parallelismSessionBiaya minimum eksekusi sekuensial sebelum pengoptimal mempertimbangkan eksekusi paralel. Nilai yang valid: 0–18.446.744.073.709.551.615. Default: 50000.
loose_records_threshold_for_mppSessionJumlah minimum baris yang dipindai dari tabel yang terlibat dalam pernyataan kueri sebelum pengoptimal mempertimbangkan permintaan paralel elastis multi-node. Nilai yang valid: 0–18.446.744.073.709.551.615. Default: 0 (N × loose_records_threshold_for_parallelism, dengan N adalah jumlah node dalam kluster).
loose_cost_threshold_for_mppSessionBiaya minimum eksekusi sekuensial sebelum pengoptimal mempertimbangkan permintaan paralel elastis multi-node. Nilai yang valid: 0–18.446.744.073.709.551.615. Default: 0 (N × loose_cost_threshold_for_parallelism, dengan N adalah jumlah node dalam kluster).

Catatan parameter

`loose_max_parallel_degree`

Pengoptimal PolarDB dapat menjalankan kueri utama dan subkueri menggunakan rencana eksekusi paralel terpisah. Saat rencana terpisah digunakan, jumlah total worker adalah jumlah worker untuk kueri utama dan semua subkueri — tidak dibatasi oleh loose_max_parallel_degree per subkueri. Saat rencana yang sama digunakan, jumlah total worker tidak boleh melebihi loose_max_parallel_degree.

Pengaturan konsol dan loose_max_parallel_degree berinteraksi sebagai berikut:

  • Jika query paralel elastis diaktifkan di Konsol PolarDB dan loose_max_parallel_degree juga diatur, maka pengaturan konsol yang berlaku. Aktifkan query paralel elastis di Konsol PolarDB untuk sebagian besar skenario.

  • Jika query paralel elastis tidak diaktifkan di Konsol PolarDB tetapi loose_max_parallel_degree diatur ke nilai lebih besar dari 0, fitur ini akan diaktifkan secara otomatis.

`loose_max_parallel_workers`

Pada kluster serverless, nilai loose_max_parallel_workers disesuaikan secara otomatis seiring penskalaan spesifikasi node. Untuk detail kebijakan antrian, lihat Parameter yang menentukan kebijakan antrian kueri paralel.

`loose_parallel_degree_policy`

NilaiPerilaku
TYPICALDOP selalu diatur ke loose_max_parallel_degree, terlepas dari beban database atau pemanfaatan CPU.
AUTOPengoptimal mengaktifkan atau menonaktifkan query paralel elastis berdasarkan beban database (termasuk pemanfaatan CPU) dan memilih DOP berdasarkan biaya kueri.
REPLICA_AUTO (default)Node read-only menentukan apakah akan mengaktifkan query paralel elastis berdasarkan beban database dan memilih DOP berdasarkan biaya kueri. Node primary tidak menjalankan query paralel elastis.

`loose_records_threshold_for_parallelism`

Jika sebagian besar kueri Anda bersifat sederhana dan melibatkan volume data kecil, atur ambang batas ini minimal ke 2000 untuk menghindari pemicuan eksekusi paralel yang tidak perlu.

Pengaturan yang direkomendasikan

Gunakan panduan berikut sebagai titik awal untuk konfigurasi kluster Anda:

TujuanRekomendasi
Mengaktifkan kueri paralelAtur loose_max_parallel_degree ke nilai lebih besar dari 0, atau aktifkan fitur tersebut di Konsol PolarDB.
Membatasi konsumsi parallel workerKurangi loose_max_parallel_workers dari nilai default-nya (dua kali jumlah core CPU) jika kueri paralel mengonsumsi terlalu banyak resource. Sesuaikan berdasarkan nilai Total_running_parallel_workers yang diamati.
Menghindari paralelisme yang tidak perlu pada beban kerja OLTPNaikkan loose_records_threshold_for_parallelism ke 2000 atau lebih tinggi jika sebagian besar kueri bersifat sederhana dan hanya menyentuh dataset kecil.
Membatasi kueri paralel hanya pada node read-onlyGunakan loose_parallel_degree_policy = REPLICA_AUTO (default) agar node primary bebas dari overhead kueri paralel.
Menyetel kueri paralel multi-nodeBiarkan loose_records_threshold_for_mpp dan loose_cost_threshold_for_mpp pada nilai default-nya yaitu 0 agar mewarisi ambang batas single-node yang diskalakan berdasarkan jumlah node. Naikkan nilai tersebut hanya jika paralelisme multi-node terpicu terlalu agresif.

Variabel kueri paralel

Gunakan variabel status berikut untuk memantau query paralel elastis saat runtime dan mendiagnosis mengapa eksekusi paralel mungkin tidak terpicu untuk kueri tertentu. Kueri variabel ini dengan SHOW GLOBAL STATUS atau SHOW SESSION STATUS.

VariabelRuang LingkupDeskripsi
Parallel_workers_createdGlobal, sessionJumlah total parallel worker yang dibuat sejak session dimulai.
Gather_recordsGlobal, sessionJumlah total catatan yang dikumpulkan oleh parallel worker.
PQ_refused_over_total_workersGlobal, sessionJumlah kueri yang kembali ke eksekusi sekuensial karena batas total parallel worker (loose_max_parallel_workers) telah tercapai.
PQ_refused_over_max_queuing_timeGlobal, sessionJumlah kueri yang kembali ke eksekusi sekuensial karena waktu tunggu antrian melebihi loose_pq_max_queuing_time.
Total_running_parallel_workersGlobalJumlah parallel worker yang sedang berjalan.

Jika PQ_refused_over_total_workers atau PQ_refused_over_max_queuing_time terus meningkat, kueri paralel sedang dikendalikan alirannya akibat konflik sumber daya. Tingkatkan loose_max_parallel_workers atau loose_pq_max_queuing_time untuk mengurangi fallback ke eksekusi sekuensial.