All Products
Search
Document Center

ApsaraDB RDS:DDL yang Lebih Cepat

Last Updated:Jul 06, 2025

Topik ini menjelaskan fitur DDL yang lebih cepat, yang menyediakan mekanisme manajemen buffer pool yang dioptimalkan. Mekanisme ini mengurangi dampak operasi bahasa definisi data (DDL) dan meningkatkan jumlah operasi DDL bersamaan yang diizinkan.

Prasyarat

Instansi RDS Anda harus menjalankan salah satu versi MySQL berikut:

Informasi latar belakang

Operasi DDL sering digunakan pada instansi RDS. Saat menggunakan instansi RDS, Anda mungkin menghadapi beberapa masalah terkait operasi DDL, seperti:

  • Mengapa jitter performa terjadi saat menambahkan indeks, sehingga mengganggu operasi baca dan tulis pada instansi RDS?
  • Mengapa operasi DDL pada tabel berukuran kurang dari 1 GB memerlukan waktu lebih dari 10 menit?
  • Mengapa jitter performa terjadi saat koneksi yang menghasilkan tabel sementara ditutup?

Tim mesin database ApsaraDB for RDS telah melakukan analisis mendalam dan pengujian intensif untuk mengidentifikasi penyebab masalah-masalah ini. Hasilnya menunjukkan adanya cacat dalam logika pemeliharaan cache yang digunakan untuk mengelola operasi DDL. Untuk memperbaiki masalah ini, tim mengembangkan fitur DDL yang lebih cepat. Mekanisme manajemen buffer pool yang dioptimalkan oleh fitur ini mengurangi kompetisi untuk kunci yang dipicu oleh operasi DDL. Dengan demikian, fitur ini memastikan performa instansi RDS tetap stabil selama pemrosesan beban kerja normal.

Aktifkan DDL yang lebih cepat

Anda dapat mengaktifkan fitur DDL yang lebih cepat dengan mengatur parameter loose_innodb_rds_faster_ddl ke ON di konsol ApsaraDB for RDS. Untuk informasi lebih lanjut, lihat Ubah Parameter Instansi ApsaraDB RDS untuk MySQL.

Uji dengan operasi DDL

  • Skenario Uji

    Gunakan algoritma in-place untuk melakukan operasi DDL online dengan menjalankan pernyataan berikut yang didukung MySQL 8.0: CREATE INDEX dan OPTIMIZE TABLE. Pernyataan CREATE INDEX membuat indeks pada tabel tanpa perlu membangun ulang tabel. Pernyataan OPTIMIZE TABLE membuat indeks pada tabel dengan membangun ulang tabel.

    OperasiInstantIn-placeMembangun ulang tabelMengizinkan operasi DML bersamaanHanya memodifikasi metadata
    CREATE INDEXTidakYaTidakYaTidak
    OPTIMIZE TABLETidakYaYaYaTidak
  • Instansi Uji

    Instansi RDS yang digunakan untuk uji menjalankan MySQL 8.0. Instansi ini memiliki 8 inti CPU dan 64 GB memori. Ukuran tabel tempat Anda melakukan operasi DDL adalah 600 MB.

  • Prosedur Uji

    Gunakan SysBench untuk melakukan uji stres. Dalam uji ini, lakukan operasi DDL online dan bandingkan hasilnya.

  • Hasil Uji
    OperasiDurasi eksekusi rata-rata (dengan DDL yang lebih cepat dinonaktifkan)Durasi eksekusi rata-rata (dengan DDL yang lebih cepat diaktifkan)Peningkatan performa kali
    CREATE INDEX56 detik4,9 detik11,4
    OPTIMIZE TABLE220 detik17 detik12,9
  • Ringkasan Uji

    Fitur DDL yang lebih cepat memungkinkan ApsaraDB RDS untuk MySQL dengan AliSQL mengurangi durasi eksekusi operasi DDL lebih dari 90% dibandingkan dengan Edisi Komunitas MySQL.

Uji dengan tabel sementara

Tabel sementara umum digunakan di MySQL. Sebagai contoh, sistem membuat tabel sementara untuk menanyakan tabel dari database information_schema atau untuk mempercepat eksekusi pernyataan SQL yang kompleks. Saat sebuah thread keluar, semua tabel sementara terkait dihapus. Ini merupakan jenis operasi DDL tertentu yang dapat menyebabkan jitter performa pada instansi RDS. Untuk informasi lebih lanjut, lihat Temp ibt tablespace truncation at disconnection stuck InnoDB under large BP.

  • Instansi Uji

    Instansi RDS yang digunakan untuk uji menjalankan MySQL 8.0. Instansi ini memiliki 8 inti CPU dan 64 GB memori.

  • Prosedur Uji

    Gunakan tpcc-mysql untuk melakukan uji stres. Dalam uji ini, jalankan query untuk memastikan bahwa buffer pool mencapai kapasitas penuh hampir sepenuhnya. Kemudian, mulai permintaan single-threaded melalui koneksi singkat untuk menghasilkan tabel sementara.

  • Hasil Uji
    Item perbandinganOperasi DDL tidak termasukDDL yang lebih cepat diaktifkanDDL yang lebih cepat dinonaktifkan
    Transaksi per detik (TPS)42.00040.000< 10.000

    Gambar berikut menunjukkan data performa tingkat kedua yang diperoleh dari uji stres. Bagian yang disorot merah menunjukkan TPS yang didukung oleh instansi RDS saat fitur DDL yang lebih cepat dinonaktifkan.

    TPS
  • Ringkasan Uji

    Setiap kali sebuah thread yang menghasilkan tabel sementara keluar, MySQL asli menyebabkan jitter performa yang parah, mengurangi TPS lebih dari 70%. Setelah fitur DDL yang lebih cepat diaktifkan, penurunan TPS dikurangi menjadi hanya 5%.

Efek optimasi

Fitur DDL yang lebih cepat mendukung MySQL 5.6, 5.7, dan 8.0. Namun, operasi DDL yang didukung dapat bervariasi berdasarkan versi MySQL yang digunakan.

KategoriOperasi DDLMySQL 5.6MySQL 5.7MySQL 8.0
DDL In-placeUntuk informasi lebih lanjut, lihat Operasi DDL Online MySQL 8.0 dan Operasi DDL Online MySQL 5.7.TidakYaYa
Manajemen tablespaceMengaktifkan atau menonaktifkan enkripsi tablespace.TidakYaYa
Melepaskan atau menghapus tablespace.TidakYaYa
Membuang tablespace.YaYaYa
Penghapusan tabel Melepaskan atau menghapus tabel.YaYaYa
Operasi undoMelepaskan atau menghapus tablespace undo.TidakTidakYa
Penyegaran tabelMenyegarkan tabel dan halaman kotornya.YaYaYa

Cacat yang diperbaiki oleh DDL yang lebih cepat

Fitur DDL yang lebih cepat memperbaiki cacat berikut: