全部产品
Search
文档中心

PolarDB:TRUNCATE/DROP TABLE Lebih Cepat

更新时间:Nov 11, 2025

PolarDB mengatasi kinerja lambat pada operasi Data Definition Language (DDL), seperti TRUNCATE TABLE dan DROP TABLE, di MySQL edisi komunitas dengan mengoptimalkan mekanisme pembersihan halaman data di kolam buffer. Optimasi ini menghindari bottleneck kinerja akibat pemindaian penuh. Pada kluster dengan memori besar atau di bawah beban tinggi, fitur ini secara signifikan mengurangi waktu eksekusi operasi DDL serta meningkatkan kinerja dan stabilitas sistem.

Batasan

Kluster PolarDB for MySQL Anda harus memenuhi salah satu persyaratan berikut:

  • MySQL 5.7, versi revisi 5.7.1.0.19 atau lebih baru.

  • MySQL 8.0.1, versi revisi 8.0.1.1.50 atau lebih baru.

  • MySQL 8.0.2, versi revisi 8.0.2.2.30.1 atau lebih baru.

Catatan

Untuk memeriksa versi revisi kluster Anda, lihat Panduan Versi untuk PolarDB for MySQL.

Penggunaan

Anda dapat mengaktifkan fitur TRUNCATE/DROP TABLE yang lebih cepat dengan mengatur parameter loose_innodb_flush_pages_using_space_id. Untuk informasi selengkapnya, lihat Mengatur parameter kluster dan parameter node. Tabel berikut menjelaskan parameter tersebut.

Parameter

Tingkat

Deskripsi

loose_innodb_flush_pages_using_space_id

Global

Sakelar untuk fitur TRUNCATE/DROP TABLE yang lebih cepat. Nilai yang valid:

  • ON: Mengaktifkan fitur TRUNCATE/DROP TABLE yang lebih cepat.

  • OFF: Menonaktifkan fitur TRUNCATE/DROP TABLE yang lebih cepat.

Pengujian kinerja

Pengujian ini menggunakan MySQL 5.7 untuk membandingkan kinerja operasi TRUNCATE TABLE pada kluster dengan spesifikasi berbeda, dengan fitur TRUNCATE/DROP TABLE yang lebih cepat diaktifkan dan dinonaktifkan.

Metode pengujian

  1. Jalankan perintah berikut untuk mengisi kolam buffer pada kluster dengan spesifikasi berbeda. Langkah ini memastikan bahwa status kolam buffer tidak memengaruhi kinerja operasi TRUNCATE TABLE.

    ip=<cluster_endpoint>
    user=<database_account>
    psw=<database_password>
    port=<database_port>
    MYSQL="mysql -h $ip -P $port -u$user -p$psw -vvv -e"
    $MYSQL "create database test;"
    $MYSQL "use test;create table if not exists t3 (a bigint,b char(250),c char(250),d char(250),e char(250)) charset=latin1;"
    $MYSQL "use test;insert into t3 values(1,repeat('x', 255),repeat('x', 255),repeat('x', 255),repeat('x', 255));"
    for ((i=1; i<=32; i+=1))
    do
       $MYSQL --host=$ip -p$psw --port=$port -u$user  -vvv -e "use test;insert into t3 select * from t3;"
    done
    $MYSQL  "use test; select count(*) from t3;"
  2. Buat dua tabel, t1 dan t2. Masukkan 8.192 baris data ke dalam t1 dan 2.097.152 baris data ke dalam t2.

    # Buat tabel t1 dan masukkan 8.192 baris data.
    row_num=13
    ip=<cluster_endpoint>
    user=<database_account>
    psw=<database_password>
    port=<database_port>
    MYSQL="mysql -h $ip -P $port -u$user -p$psw -vvv -e"
    $MYSQL "use test;create table if not exists t1 (a bigint,b char(250),c char(250),d char(250),e char(250)) charset=latin1;"
    $MYSQL "use test;insert into t1 values(1,repeat('x', 255),repeat('x', 255),repeat('x', 255),repeat('x', 255));"
    for ((i=1; i<=$row_num; i+=1))
    do
       $MYSQL "use test;insert into t1 select * from t1;"
    done
    # Buat tabel t2 dan masukkan 2.097.152 baris data.
    row_num=21
    ip=<cluster_endpoint>
    user=<database_account>
    psw=<database_password>
    port=<database_port>
    MYSQL="mysql -h $ip -P $port -u$user -p$psw -vvv -e"
    $MYSQL "use test;create table if not exists t2 (a bigint,b char(250),c char(250),d char(250),e char(250)) charset=latin1;"
    $MYSQL "use test;insert into t2 values(1,repeat('x', 255),repeat('x', 255),repeat('x', 255),repeat('x', 255));"
    for ((i=1; i<=$row_num; i+=1))
    do
       $MYSQL "use test;insert into t2 select * from t2;"
    done
  3. Pada kluster dengan spesifikasi berbeda, jalankan operasi TRUNCATE TABLE pada tabel t1 dan t2 dengan fitur TRUNCATE/DROP TABLE yang lebih cepat diaktifkan dan dinonaktifkan.

Hasil pengujian

Waktu eksekusi operasi TRUNCATE TABLE pada tabel t1 dan t2 dicatat pada kluster dengan spesifikasi berbeda, dengan fitur TRUNCATE/DROP TABLE yang lebih cepat diaktifkan dan dinonaktifkan. Hasilnya ditunjukkan dalam tabel berikut:

Spesifikasi kluster

Kolam buffer (GB)

t1

t2

ON (detik)

OFF (detik)

Tingkat peningkatan

ON (detik)

OFF (detik)

Tingkat peningkatan

64 core, 512 GB

374

0,01

5.2

99,81%

0,11

9,48

98,84%

32 core, 256 GB

192

0,02

2,45

99,18%

0,1

2,65

96,23%

16 core, 128 GB

96

0,01

1,73

99,42%

0,12

1,86

93,55%

8 core, 64 GB

42

0,01

0,73

98,63%

0,12

0,79

84,81%

4 core, 32 GB

24

0,02

0,45

95,56%

0,13

0,53

75,47%

4 core, 16 GB

12

0,03

0,23

86,96%

0,12

0,35

65,71%

Tabel tersebut menunjukkan bahwa mengaktifkan fitur TRUNCATE/DROP TABLE yang lebih cepat secara signifikan meningkatkan kinerja operasi TRUNCATE TABLE.

Hubungi kami

Jika Anda memiliki pertanyaan tentang operasi DDL, silakan hubungi dukungan teknis.