全部产品
Search
文档中心

PolarDB:DDL Paralel

更新时间:Jul 06, 2025

PolarDB mendukung fitur DDL paralel. Saat sumber daya perangkat keras tersedia dalam kluster, fitur ini dapat mempercepat pelaksanaan operasi DDL, mencegah pemblokiran operasi DML berikutnya, dan mempersingkat jendela eksekusi.

Prasyarat

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

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

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

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

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

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

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

Untuk informasi lebih lanjut tentang cara memeriksa versi kluster, lihat Kueri versi mesin.

Penggunaan

Setelah fitur DDL paralel diaktifkan, penggunaan sumber daya perangkat keras seperti CPU, memori, dan I/O meningkat seiring dengan jumlah thread konkuren. Hal ini dapat mempengaruhi operasi SQL lainnya yang dieksekusi pada periode yang sama. Oleh karena itu, disarankan untuk menggunakan fitur ini selama jam-jam sepi atau saat sumber daya perangkat keras mencukupi.

Batasan

Fitur DDL paralel hanya dapat mempercepat operasi DDL untuk membuat indeks kunci utama dan indeks sekunder. Indeks sekunder tidak termasuk indeks teks penuh, indeks spasial, dan indeks sekunder pada kolom virtual.

Latar Belakang

Operasi DDL tradisional dirancang berdasarkan inti tunggal dan hard disk tradisional, sehingga waktu eksekusi pada tabel besar sangat lama dengan latensi tinggi. Sebagai contoh, saat melakukan operasi DDL untuk membuat indeks sekunder, kueri DML berikutnya yang bergantung pada indeks baru akan terblokir akibat latensi tinggi dari operasi DDL. Prosesor multi-core dan Solid State Drive (SSD) memberikan dukungan perangkat keras untuk fitur DDL paralel, memungkinkannya menggunakan lebih banyak thread dan mengurangi latensi akses acak. Dalam kasus ini, fitur DDL paralel dapat digunakan untuk mempercepat proses pembuatan indeks pada tabel besar.

Menggunakan fitur DDL paralel

  • innodb_polar_parallel_ddl_threads

    Anda dapat mengaktifkan fitur DDL paralel dengan menentukan parameter innodb_polar_parallel_ddl_threads.

    Parameter

    Level

    Deskripsi

    innodb_polar_parallel_ddl_threads

    Sesi

    Jumlah thread konkuren untuk setiap operasi DDL. Nilai valid: 1 hingga 16. Nilai default 1 menunjukkan bahwa operasi DDL single-threaded dilakukan.

    Jika nilai parameter ini bukan 1 atau jika operasi DDL yang dijalankan digunakan untuk membuat indeks sekunder, fitur DDL paralel secara otomatis diaktifkan.

    Catatan

    Jika nilai parameter ini adalah 1, dua thread konkuren digunakan untuk setiap operasi DDL.

  • innodb_parallel_build_primary_index

    Anda dapat mengizinkan fitur DDL paralel saat membuat indeks kunci utama dengan menentukan parameter innodb_parallel_build_primary_index:

    Catatan

    Parameter ini dalam rilis canary. Untuk mengajukan penggunaan percobaan parameter ini, kunjungi Quota Center. Klik Apply di kolom Actions yang sesuai dengan PolarDB hotspot row parameter adjustment.

    Parameter

    Level

    Deskripsi

    innodb_parallel_build_primary_index

    Global

    Menentukan apakah akan mengizinkan fitur DDL paralel saat membuat indeks kunci utama. Nilai default: OFF. Nilai valid:

    • ON

    • OFF

  • innodb_polar_use_sample_sort

    Jika fitur DDL paralel belum memenuhi kebutuhan Anda, gunakan parameter innodb_polar_use_sample_sort untuk mengoptimalkan pengurutan saat membuat indeks.

    Parameter

    Level

    Deskripsi

    innodb_polar_use_sample_sort

    Sesi

    Menentukan apakah akan mengaktifkan fitur optimasi pengurutan sampel. Nilai default: OFF. Nilai valid:

    • ON

    • OFF

  • innodb_polar_use_parallel_bulk_load

    Jika optimasi pengurutan sampel belum memenuhi kebutuhan Anda, gunakan parameter innodb_polar_use_parallel_bulk_load untuk mengoptimalkan proses pembuatan pohon indeks.

    Parameter

    Level

    Deskripsi

    innodb_polar_use_parallel_bulk_load

    Sesi

    Menentukan apakah akan mengaktifkan fitur optimasi bulk load. Nilai default: OFF. Nilai valid:

    • ON

    • OFF

Uji performa

  • Lingkungan uji

    • Kluster PolarDB for MySQL 8.0 dengan 16 core CPU dan 128 GB memori, menjalankan Edisi Kluster.

    • Kapasitas penyimpanan kluster adalah 50 TB.

  • Skema

    Buat tabel bernama t0.

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

    Hasilkan data uji.

    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
    • Dalam pengujian aktual, ganti $table_size dengan jumlah rekaman yang diinginkan, seperti 1000000.

    • Pengujian ini menggunakan tabel dengan 1 juta, 10 juta, 100 juta, dan 1 miliar baris data, serta tabel yang menyimpan 1 TB data.

    • Tabel uji yang menyimpan 1 TB data dibuat oleh alat SysBench. Untuk informasi lebih lanjut tentang penggunaan alat SysBench, lihat Alat uji.

  • Metode uji

    Uji laju peningkatan efisiensi eksekusi operasi DDL yang membuat indeks sekunder pada bidang b dari tipe data INT dengan jumlah thread konkuren berbeda saat innodb_polar_parallel_ddl_threads disetel ke 1, 2, 4, 8, 16, dan 32. Fitur DDL paralel diaktifkan untuk tabel dengan volume data yang berbeda.

  • Hasil uji

    • Gambar berikut menunjukkan rasio percepatan DDL paralel setelah hanya parameter innodb_polar_parallel_ddl_threads disetel ke ON. A

    • Gambar berikut menunjukkan rasio percepatan DDL paralel setelah parameter innodb_polar_parallel_ddl_threads dan innodb_polar_use_sample_sort disetel ke ON. Acceleration ratio of parallel DDL

    • Gambar berikut menunjukkan rasio percepatan DDL paralel setelah parameter innodb_polar_parallel_ddl_threads, innodb_polar_use_sample_sort, dan innodb_polar_use_parallel_bulk_load disetel ke ON. B

Hubungi kami

Jika Anda memiliki pertanyaan tentang operasi DDL, hubungi kami.