全部产品
Search
文档中心

PolarDB:Parallel DDL

更新时间:Jan 14, 2026

PolarDB mendukung fitur parallel Data Definition Language (DDL). Saat sumber daya perangkat keras database sedang idle, Anda dapat menggunakan fitur ini untuk mempercepat eksekusi DDL, sehingga menghindari pemblokiran operasi Data Manipulation Language (DML) berikutnya dan mempersingkat durasi operasi DDL.

Cakupan Penerapan

Untuk membuat indeks sekunder, kluster PolarDB Anda harus memenuhi salah satu persyaratan versi berikut:

  • PolarDB for MySQL 8.0.2 dengan versi revisi 8.0.2.1.7 atau lebih baru.

  • PolarDB for MySQL 8.0.1 dengan versi revisi 8.0.1.1.10 atau lebih baru.

  • PolarDB for MySQL 5.7 dengan versi revisi 5.7.1.0.7 atau lebih baru.

Untuk membuat indeks kunci primer, kluster PolarDB Anda harus memenuhi salah satu persyaratan versi berikut:

  • PolarDB for MySQL 8.0.2 dengan versi revisi 8.0.2.2.9 atau lebih baru.

  • PolarDB for MySQL 8.0.1 dengan versi revisi 8.0.1.1.31 atau lebih baru.

Untuk informasi selengkapnya, lihat Kueri nomor versi.

Catatan penting

Mengaktifkan fitur parallel DDL akan meningkatkan jumlah thread paralel, sehingga mengonsumsi lebih banyak sumber daya perangkat keras seperti CPU, memori, dan I/O, serta berpotensi memengaruhi operasi SQL lain yang sedang berjalan secara bersamaan. Kami menyarankan agar Anda menggunakan fitur ini selama jam sepi atau saat sumber daya perangkat keras mencukupi.

Batasan

Fitur parallel DDL saat ini hanya mendukung operasi DDL untuk membuat indeks kunci primer dan indeks sekunder. Fitur ini tidak mendukung pembuatan indeks teks penuh, indeks spasial, atau indeks sekunder pada kolom virtual.

Informasi latar belakang

Operasi DDL tradisional dirancang untuk prosesor single-core dan hard disk konvensional. Desain ini dapat menyebabkan waktu eksekusi yang lama dan latensi tinggi untuk operasi DDL pada tabel besar. Sebagai contoh, operasi DDL dengan latensi tinggi untuk membuat indeks sekunder dapat memblokir kueri DML berikutnya yang bergantung pada indeks baru tersebut. Perkembangan prosesor multi-core menyediakan dukungan perangkat keras bagi parallel DDL untuk menggunakan lebih banyak thread. Selain itu, penggunaan luas Solid State Disk (SSD) menjadikan latensi akses acak setara dengan latensi akses sekuensial, sehingga penerapan parallel DDL sangat bermanfaat untuk mempercepat pembuatan indeks pada tabel besar.

Cara penggunaan

  • innodb_polar_parallel_ddl_threads

    Anda dapat mengaktifkan fitur parallel DDL dengan mengatur parameter innodb_polar_parallel_ddl_threads:

    Parameter

    Level

    Deskripsi

    innodb_polar_parallel_ddl_threads

    Session

    Mengontrol jumlah thread paralel untuk setiap operasi DDL. Rentang nilai: 1 hingga 16. Nilai default adalah 1, yang menjalankan DDL single-threaded.

    Jika nilai parameter ini bukan 1, parallel DDL akan diaktifkan secara otomatis saat Anda membuat indeks sekunder.

    Catatan

    Saat parameter ini diatur ke 1, sistem secara default menggunakan dua thread paralel.

  • innodb_parallel_build_primary_index

    Anda dapat menggunakan parameter innodb_parallel_build_primary_index untuk mengontrol apakah parallel DDL diizinkan saat membuat indeks kunci primer:

    Catatan

    Untuk menggunakan fitur pembuatan indeks kunci primer paralel, buka Quota Center. Temukan kuota dengan Quota ID polardb_mysql_pddl_for_pk, lalu klik Apply pada kolom Actions untuk mengajukan uji coba.

    Parameter

    Level

    Deskripsi

    innodb_parallel_build_primary_index

    Global

    Mengontrol apakah parallel DDL diizinkan saat membuat indeks kunci primer. Nilai yang valid adalah sebagai berikut:

    • ON: Mengizinkan parallel DDL untuk pembuatan indeks kunci primer.

    • OFF: Tidak mengizinkan parallel DDL untuk pembuatan indeks kunci primer (default).

  • innodb_polar_use_sample_sort

    Jika parallel DDL saja belum memenuhi kebutuhan performa Anda, Anda dapat menggunakan parameter innodb_polar_use_sample_sort untuk lebih mengoptimalkan proses sorting selama pembuatan indeks.

    Parameter

    Level

    Deskripsi

    innodb_polar_use_sample_sort

    Session

    Sakelar untuk fitur optimasi sample sort. Nilai yang valid adalah sebagai berikut:

    • ON: Mengaktifkan fitur optimasi sample sort.

    • OFF: Menonaktifkan fitur optimasi sample sort (default).

  • innodb_polar_use_parallel_bulk_load

    Jika fitur-fitur sebelumnya masih belum memenuhi kebutuhan performa Anda, Anda juga dapat menggunakan parameter innodb_polar_use_parallel_bulk_load untuk lebih mengoptimalkan proses pembuatan struktur pohon indeks.

    Parameter

    Level

    Deskripsi

    innodb_polar_use_parallel_bulk_load

    Session

    Sakelar untuk fitur optimasi parallel bulk load. Nilai yang valid adalah sebagai berikut:

    • ON: Mengaktifkan fitur optimasi parallel bulk load.

    • OFF: Menonaktifkan fitur optimasi parallel bulk load (default).

Pengujian performa

  • Lingkungan pengujian

    • Kluster PolarDB for MySQL 8.0 Edisi Standar dengan 16 core dan memori 128 GB.

    • Kluster memiliki storage space 50 TB.

  • Skema tabel pengujian

    Buat tabel bernama t0 menggunakan pernyataan berikut:

    CREATE TABLE t0(
    a INT PRIMARY KEY,
    b INT) ENGINE=InnoDB;
  • Data tabel pengujian

    Hasilkan data pengujian menggunakan pernyataan berikut:

    DELIMITER //
    CREATE PROCEDURE populate_t0()
    BEGIN
         DECLARE i int DEFAULT 1;
         WHILE (i <= $table_size) DO
                 INSERT INTO t0 VALUES (i, 1000000 * RAND());
                 SET i = i + 1;
         END WHILE;
    END //
    DELIMITER ;
    CALL populate_t0() ;
    Catatan
    • Saat menjalankan pengujian, ganti $table_size dengan jumlah record dalam tabel, misalnya 1000000.

    • Pengujian ini menggunakan tabel dengan 1.000.000, 10.000.000, 100.000.000, dan 1.000.000.000 record, serta tabel dengan data sebesar 1 TB.

    • Tabel pengujian 1 TB dihasilkan menggunakan tool Sysbench. Untuk informasi selengkapnya tentang cara menggunakan tool Sysbench, lihat Tool pengujian.

  • Metode pengujian

    Pengujian ini mengukur peningkatan performa pembuatan indeks sekunder pada bidang b dengan tipe data INT untuk tabel dengan ukuran berbeda. Dalam pengujian ini, parallel DDL diaktifkan, dan parameter innodb_polar_parallel_ddl_threads diatur ke 1, 2, 4, 8, 16, dan 32 untuk memvariasikan jumlah thread paralel.

  • Hasil pengujian

    • Graf berikut menunjukkan rasio percepatan parallel DDL ketika hanya parameter innodb_polar_parallel_ddl_threads diaktifkan.A

    • Graf berikut menunjukkan rasio percepatan parallel DDL ketika parameter innodb_polar_parallel_ddl_threads dan innodb_polar_use_sample_sort diaktifkan.加速效果图

    • Graf berikut menunjukkan rasio percepatan parallel DDL ketika parameter innodb_polar_parallel_ddl_threads, innodb_polar_use_sample_sort, dan innodb_polar_use_parallel_bulk_load diaktifkan.B

Hubungi kami

Jika Anda memiliki pertanyaan mengenai operasi DDL, silakan hubungi dukungan teknis.