All Products
Search
Document Center

PolarDB:I/O\ Asinkron\ untuk\ DDL

Last Updated:Mar 28, 2026

Fitur I/O asinkron DDL telah ditambahkan di PolarDB. Pembuatan indeks pada tabel besar melalui pernyataan DDL memakan waktu lama. Anda dapat menggunakan fitur I/O asinkron DDL untuk memperpendek waktu pembuatan indeks tersebut.

Prasyarat

Sebelum memulai, pastikan kluster PolarDB Anda memenuhi salah satu persyaratan versi berikut:

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

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

Untuk memeriksa versi saat ini, lihat Query the engine version.

Batasan

I/O asinkron DDL tidak berlaku untuk:

  • Indeks teks lengkap (full-text indexes)

  • Indeks spasial (spatial indexes)

Aktifkan I/O asinkron DDL

Atur parameter innodb_polar_ddl_async_io ke nilai ON dalam pengaturan parameter kluster Anda. Untuk petunjuknya, lihat Configure cluster and node parameters.

ParameterLevelDefaultValid valuesDescription
innodb_polar_ddl_async_ioGlobalOFFON, OFFMengaktifkan atau menonaktifkan I/O asinkron DDL

Uji kinerja

Uji berikut mengukur dampak I/O asinkron DDL terhadap pembuatan indeks pada tabel besar.

Lingkungan pengujian

  • PolarDB for MySQL 8.0, CPU 8 core, memori 32 GB, kapasitas penyimpanan 50 TB

Skema

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 uji

Prosedur tersimpan berikut menyisipkan 100.000.000 baris ke dalam table_1:

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 dan hasil pengujian

Jalankan pernyataan berikut dengan I/O asinkron DDL diaktifkan lalu dinonaktifkan, kemudian bandingkan waktu eksekusinya:

ALTER TABLE table_1 ADD INDEX name_index (seller_name);
DDL asynchronous I/OTime (seconds)
Enabled368
Disabled485

Dalam pengujian ini, mengaktifkan I/O asinkron DDL mengurangi waktu pembuatan indeks sekitar 24%.

Contact us

Jika Anda memiliki pertanyaan mengenai operasi DDL, silakan contact technical support.

Langkah selanjutnya