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:
|
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.