Fitur penggabungan dan pengurutan DDL multi-jalur telah ditambahkan di PolarDB. Proses pembuatan indeks pada tabel besar dengan menjalankan pernyataan DDL memakan waktu. Anda dapat menggunakan fitur ini untuk mempersingkat waktu pengurutan 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.5 atau lebih baru.
Kluster PolarDB for MySQL 8.0.1 dengan versi revisi 8.0.1.1.28 atau lebih baru.
Kluster PolarDB for MySQL 5.7 dengan versi revisi 5.7.1.0.23 atau lebih baru.
Untuk informasi lebih lanjut tentang cara memeriksa versi kluster, lihat Kueri versi mesin.
Peringatan
Fitur penggabungan dan pengurutan DDL multi-jalur tidak didukung untuk indeks teks penuh dan indeks spasial.
Fitur penggabungan dan pengurutan DDL multi-jalur sedikit meningkatkan penggunaan memori kluster. Jika Anda mengaktifkan N jalur untuk penggabungan dan pengurutan, ukuran memori yang digunakan oleh kluster adalah
(N+1) × innodb_sort_buffer_sizebyte.
Penggunaan
Anda dapat menentukan jumlah jalur untuk penggabungan dan pengurutan dengan mengatur parameter innodb_polar_parallel_merge_ways.
Parameter | Tingkat | Deskripsi |
innodb_polar_parallel_merge_ways | Sesi | Jumlah jalur untuk penggabungan dan pengurutan. Nilai valid: 2 hingga 16. Nilai default: 2. Secara default, penggabungan dan pengurutan dua jalur digunakan. Jika Anda menentukan nilai lebih dari 2, fitur penggabungan dan pengurutan multi-jalur diaktifkan. |
Uji kinerja
Lingkungan Uji
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 Uji dan Hasil Uji
Setelah tabel diisi dengan data, tentukan dua jalur dan delapan jalur untuk penggabungan dan pengurutan. Jalankan pernyataan
alter table table_1 add index name_index (seller_name);dan bandingkan efisiensi eksekusi pernyataan dalam kedua kasus tersebut.Jalur untuk penggabungan dan pengurutan
Waktu yang dibutuhkan (detik)
Penggabungan dan pengurutan delapan jalur
353
Penggabungan dan pengurutan dua jalur
485
Hubungi kami
Jika Anda memiliki pertanyaan terkait operasi DDL, hubungi kami.