全部产品
Search
文档中心

PolarDB:DDL asynchronous I/O

更新时间:Jul 06, 2025

Fitur DDL asynchronous I/O telah ditambahkan di PolarDB. Pembuatan indeks pada tabel besar dengan menjalankan pernyataan DDL memerlukan waktu yang lama. Anda dapat menggunakan fitur DDL asynchronous I/O untuk mempercepat proses pembuatan indeks.

Prasyarat

Kluster PolarDB Anda harus memenuhi salah satu persyaratan berikut:

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

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

Untuk informasi lebih lanjut tentang cara memeriksa versi kluster, lihat Query the engine version.

Peringatan

Fitur DDL asynchronous I/O tidak mendukung indeks teks penuh dan indeks spasial.

Penggunaan

Anda dapat mengonfigurasi fitur DDL asynchronous I/O menggunakan parameter innodb_polar_ddl_async_io. Untuk informasi lebih lanjut, lihat Configure cluster and node parameters.

Parameter

Level

Deskripsi

innodb_polar_ddl_async_io

Global

Menentukan apakah akan mengaktifkan fitur DDL asynchronous I/O. Nilai default: OFF. Nilai valid:

  • ON

  • OFF

Uji kinerja

  • Lingkungan Pengujian

    • Kluster PolarDB for MySQL 8.0 dengan 8 inti CPU dan 32 GB memori.

    • Kapasitas penyimpanan kluster adalah 50 TB.

  • Skema

    Jalankan pernyataan berikut untuk membuat tabel bernama table_1:

    CREATE TABLE `table_1` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `seller_id` bigint(20) DEFAULT NULL,
    `seller_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
    `gmt_create` varchar(30) DEFAULT NULL,
    `update_time` varchar(30) DEFAULT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB;
  • Data

    Jalankan pernyataan berikut untuk menghasilkan data uji:

    delimiter ||
    CREATE PROCEDURE populate_0(IN NUM INT)
    BEGIN
    DECLARE sid INT;
    DECLARE suffix_name INT;
    DECLARE i INT;
    SET sid=1000;
    SET suffix_name=10;
    SET i=1;
    START TRANSACTION;
    WHILE i <= NUM
    DO
    INSERT INTO table_1(seller_id,seller_name,gmt_create,update_time) VALUES(sid,CONCAT('sellername',suffix_name),NOW(),NOW());
    SET suffix_name=suffix_name+1;
    SET sid=sid+1;
    SET i=i+1;
    END WHILE;
    COMMIT;
    END ||
    delimiter ;
    CALL populate_0(100000000) ;
  • Metode Pengujian dan Hasil Pengujian

    Setelah tabel diisi dengan data, aktifkan dan nonaktifkan fitur DDL asynchronous I/O. Jalankan pernyataan alter table table_1 add index name_index (seller_name); dan bandingkan efisiensi eksekusi pernyataan dalam kedua kasus tersebut.

    DDL asynchronous I/O

    Waktu yang dibutuhkan (detik)

    Diaktifkan

    368

    Dinonaktifkan

    485

Hubungi kami

Jika Anda memiliki pertanyaan terkait operasi DDL, hubungi kami.