全部产品
Search
文档中心

PolarDB:Penggunaan

更新时间:Dec 10, 2025

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.

Untuk informasi lebih lanjut, klik di sini.

  1. Masuk ke Konsol PolarDB. Di panel navigasi kiri, klik Kluster. Di sudut kiri atas, pilih wilayah kluster. Temukan kluster dan klik ID-nya untuk pergi ke halaman Basic Information.

  2. Di bagian Database Connections pada halaman Basic Information, pilih titik akhir dan klik Configure. image

  3. Di dialog Ubah Pengaturan Titik Akhir, pilih On untuk Query Paralel dan konfigurasikan nilai Parallelism. Untuk informasi lebih lanjut tentang parameter lainnya, lihat Konfigurasi PolarProxy. imageimage

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_degree berlaku 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_degree ke nilai lebih besar dari 0, ePQ akan diaktifkan.

      Catatan

      Parameter loose_max_parallel_degree menentukan 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.

Untuk informasi lebih lanjut, klik di sini.

  1. Masuk ke Konsol PolarDB.

  2. Di panel navigasi kiri, klik Kluster.

  3. Di sudut kiri atas, pilih wilayah tempat kluster ditempatkan.

  4. Temukan kluster dan klik ID-nya.

  5. Di bagian Database Connections pada halaman Basic Information, pilih titik akhir dan klik Configure. image

  6. Di dialog Ubah Pengaturan Titik Akhir, pilih Off untuk Query Paralel. image

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_degree disetel ke 0 untuk memastikan bahwa ePQ sepenuhnya dinonaktifkan.

    Catatan

    Parameter loose_max_parallel_degree menentukan 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 loose_parallel_degree_policy. Nilai valid:

  • TYPICAL: PolarDB mengatur DOP ke nilai yang sama dengan loose_max_parallel_degree, tanpa memperhatikan beban database seperti utilisasi CPU.

    Catatan

    Parameter loose_max_parallel_degree menentukan DOP maksimum untuk query individu, yaitu jumlah maksimum pekerja yang digunakan untuk menjalankan query secara paralel. Untuk informasi lebih lanjut, lihat Parameter Konfigurasi.

  • AUTO: PolarDB mengaktifkan atau menonaktifkan fitur query paralel elastis berdasarkan beban database seperti utilisasi CPU, dan memilih DOP berdasarkan biaya query.

  • REPLICA_AUTO (default): Hanya node baca-saja yang menentukan apakah akan mengaktifkan fitur query paralel elastis berdasarkan beban database seperti utilisasi CPU, dan memilih DOP berdasarkan biaya query. Node utama tidak melakukan query paralel elastis.

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.

  • loose_records_threshold_for_parallelism

    Jika jumlah baris yang dipindai melebihi nilai records_threshold_for_parallelism, pengoptimal mengaktifkan ePQ. Nilai default adalah 10000. Jika sebagian besar query Anda sederhana dan hanya melibatkan sedikit data, kami merekomendasikan agar Anda mengatur ambang batas minimal 2000.

    Catatan

    Jumlah baris yang dipindai diperkirakan berdasarkan statistik tabel. Angka ini bisa berbeda dari jumlah baris aktual.

  • loose_cost_threshold_for_parallelism

    Jika biaya query sekuensial melebihi nilai parameter cost_threshold_for_parallelism, pengoptimal mengaktifkan ePQ. Nilai default adalah 50000.

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.

  • loose_records_threshold_for_mpp

    Jika jumlah baris yang dipindai dari tabel yang terlibat dalam pernyataan query melebihi ambang batas ini, pengoptimal mempertimbangkan penggunaan query paralel elastis multi-node dan menjadwalkan tugas paralel ke beberapa node untuk komputasi. The default value is N times the loose_records_threshold_for_parallelism value. The N value is the number of nodes involved in the current cluster endpoint

  • loose_cost_threshold_for_mpp

    Jika biaya eksekusi sekuensial dari pernyataan query melebihi ambang batas ini, pengoptimal mempertimbangkan penggunaan query paralel elastis multi-node. The default value is N times the loose_cost_threshold_for_parallelism value. The N value is the number of nodes involved in the current cluster endpoint

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.

Apakah saya dapat menggunakan petunjuk untuk mengaktifkan fitur query paralel elastis untuk titik akhir kluster PolarDB dalam mode baca-tulis?

Ya. Kami merekomendasikanagar Anda mengaktifkan ePQ di PolarDB console. Jika Anda ingin mengaktifkan ePQ untuk pernyataan SQL, Anda dapat mengatur DOP query ke n dengan menggunakan petunjuk /*+ PARALLEL(n) */ atau /*+ SET_VAR(max_parallel_degree=n) */. Dua petunjuk ini berbeda:

  • Saat petunjuk /*+ PARALLEL(n) */ digunakan, ePQ diaktifkan secara paksa tanpa memperhatikan apakah query diarahkan ke node utama atau berapa banyak data yang terlibat.

  • Saat petunjuk /*+ SET_VAR(max_parallel_degree=n) */ digunakan, apakah ePQ diaktifkan bergantung pada apakah query diarahkan ke node utama, serta biaya query dan jumlah baris data yang dievaluasi oleh pengoptimal.

Apakah parameter query paralel elastis yang saya tentukan dengan menggunakan petunjuk dalam pernyataan SQL bertentangan dengan yang saya konfigurasikan di konsol?

Tidak. Parameter yang ditentukan oleh petunjuk berlaku untuk pernyataan SQL saat ini dan memiliki prioritas lebih tinggi daripada parameter global yang dikonfigurasi di konsol.

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 ... SELECT dalam transaksi ketika tingkat isolasi adalah Baca 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 parameter max_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 n yang tidak mengandung kata kunci ORDER BY dieksekusi 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 SHARE dieksekusi 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.

FAQ

Apakah semua query dipercepat setelah saya mengaktifkan fitur query paralel elastis?

Tidak semua query dieksekusi secara paralel. Dalam kasus berikut, query tidak dieksekusi secara paralel:

  • Query paralel tidak didukung. Untuk informasi lebih lanjut, lihat Batasan.

  • Baris data yang dipindai atau biaya tidak mencapai ambang batas untuk query paralel. Parameter loose_records_threshold_for_parallelism dan loose_cost_threshold_for_parallelism mendefinisikan ambang batas rekaman dan biaya untuk query paralel.

  • Jika kluster memiliki beban kerja terlalu tinggi, query tidak lagi dieksekusi secara paralel. Untuk informasi lebih lanjut, lihat Kontrol DOP Berdasarkan Penggunaan Sumber Daya Sistem.

Mengapa sintaks petunjuk tidak berfungsi setelah ePQ diaktifkan?

Masalah ini mungkin disebabkan oleh alasan berikut:

  • ePQ diaktifkan atau dinonaktifkan hanya untuk koneksi yang dibuat setelah Anda menghidupkan atau mematikan fitur tersebut. Periksa apakah Anda telah menyambung ulang ke kluster setelah mengaktifkan ePQ.

  • ePQ dinonaktifkan secara default pada node utama. Periksa apakah Anda terhubung ke database menggunakan titik akhir utama atau titik akhir kluster. Kami merekomendasikan agar Anda menggunakan titik akhir kluster untuk terhubung ke database. Untuk informasi lebih lanjut, lihat Pengaturan DOP Adaptif.