全部产品
Search
文档中心

PolarDB:Penggabungan dan Pengurutan DDL Multi-jalur

更新时间:Jul 06, 2025

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_size byte.

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.