AliSQL mendukung pembatasan kecepatan DDL, yang memungkinkan Anda menetapkan batas atas untuk BPS dan IOPS pada operasi DDL. Pengendalian konsumsi sumber daya I/O ini membantu menjaga stabilitas layanan online Anda.
Ikhtisar
Latar Belakang: MySQL Community Edition tidak menerapkan pembatasan kecepatan pada operasi DDL, sehingga dapat menyebabkan konsumsi I/O tinggi. Masalah ini lebih terasa pada MySQL 8.0, di mana DDL paralel dapat semakin meningkatkan penggunaan I/O dan berpotensi memengaruhi layanan online Anda.
Pengantar: AliSQL menerapkan pembatasan kecepatan DDL dengan memperluas logika eksekusi DDL dari MySQL Community Edition. Fitur ini memungkinkan Anda menetapkan batas BPS dan IOPS untuk setiap operasi DDL secara individual. Dengan membatasi konsumsi sumber daya I/O seperti ini, lonjakan I/O dapat dicegah dan stabilitas layanan online Anda tetap terjaga.
Prasyarat
Untuk menggunakan pembatasan kecepatan DDL, instans Anda harus memenuhi salah satu persyaratan versi berikut:
MySQL 8.4
MySQL 8.0 dengan versi mesin minor 20251031 atau lebih baru
Jika instans Anda tidak memenuhi persyaratan tersebut, Anda dapat melakukan upgrade versi mesin minor atau versi mesin utama.
Parameter
Detail parameter
Anda dapat menggunakan parameter loose_innodb_ddl_io_limit_enabled untuk mengaktifkan atau menonaktifkan fitur pembatasan kecepatan DDL. Setelah fitur diaktifkan, Anda dapat menggunakan parameter innodb_ddl_bps_limit untuk menetapkan batas BPS dan parameter innodb_ddl_iops_limit untuk menetapkan batas IOPS.
|
Parameter |
Deskripsi |
|
|
|
|
|
|
|
|
|
Ubah parameter
Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans RDS berada. Lalu, temukan instans RDS tersebut dan klik ID-nya.
-
Di panel navigasi sebelah kiri, klik Parameter Settings.
-
Di tab Editable Parameters, temukan parameter yang dituju dan atur nilainya.
-
Klik OK lalu Submit Parameters. Di kotak dialog yang muncul, tentukan kapan perubahan akan diterapkan.
Prosedur
-
Aktifkan fitur pembatasan kecepatan DDL
Ikuti petunjuk pada bagian "Ubah parameter" untuk mengatur parameter
loose_innodb_ddl_io_limit_enabledmenjadiONdi Konsol RDS dan kirimkan perubahannya. -
Tetapkan batas BPS dan IOPS
Setelah mengaktifkan pembatasan kecepatan DDL, tetapkan batas BPS dan IOPS dalam sebuah session sebelum menjalankan pernyataan DDL. Anda dapat menerapkan batas hanya untuk BPS, hanya untuk IOPS, atau keduanya.
# Batasi BPS untuk operasi DDL menjadi 100 MB. SET SESSION innodb_ddl_bps_limit = 100 * 1024 * 1024; # Batasi IOPS untuk operasi DDL menjadi 5.000. SET SESSION innodb_ddl_iops_limit = 5000;
Contoh
Contoh ini membandingkan konsumsi I/O suatu instans saat pernyataan DDL dijalankan langsung versus saat dijalankan dengan pembatasan kecepatan yang diaktifkan.
# 1. Jalankan pernyataan DDL secara langsung.
ALTER TABLE t1 ADD INDEX idx_1(c1);
ALTER TABLE t1 DROP INDEX idx_1;
OPTIMIZE TABLE t1;
# 2. Tetapkan batas BPS menjadi 160 MB.
SET SESSION innodb_ddl_bps_limit = 160 * 1024 * 1024;
ALTER TABLE t1 ADD INDEX idx_1(c1);
ALTER TABLE t1 DROP INDEX idx_1;
OPTIMIZE TABLE t1;
