Jika pernyataan INSERT, UPDATE, dan DELETE sering dieksekusi dalam database MySQL, data tidak lagi disimpan secara kontinu pada disk, sehingga terbentuk fragmen ruang tabel (tablespace fragments). Fragmen tersebut dapat menurunkan performa database. Operasi umum seperti menjalankan pernyataan OPTIMIZE TABLE untuk mendaur ulang fragmen ruang tabel berpotensi mengunci (lock) tabel dan mengganggu bisnis. Fitur lock-free change dari Data Management (DMS) memungkinkan daur ulang fragmen ruang tabel secara otomatis sekaligus mencegah gangguan akibat penguncian tabel selama perubahan skema. Hal ini meningkatkan performa dan efisiensi database serta mengurangi biaya penyimpanan. Topik ini menjelaskan cara mengirimkan tiket lock-free schema change di DMS untuk mendaur ulang fragmen ruang tabel secara otomatis.
Prasyarat
Anda memiliki izin untuk memodifikasi tabel di database target. Untuk informasi selengkapnya, lihat View my permissions dan Submit a ticket to request permissions.
Fitur lock-free schema change telah diaktifkan untuk instans database MySQL. Untuk informasi selengkapnya, lihat Enable the lock-free schema change feature.
Catatan penggunaan
Saat mengambil kembali ruang terfragmentasi dari tabel besar, pastikan ruang penyimpanan tersisa pada instans mencapai setidaknya dua hingga tiga kali ukuran tabel tersebut. Anda juga harus memantau ketat ruang penyimpanan tersisa selama proses perubahan.
Saat mendaur ulang fragmen ruang tabel pada tabel besar, DMS mungkin memerlukan salinan data sementara yang akan menggunakan ruang penyimpanan tambahan. Jika ruang penyimpanan tersisa pada instans database tidak mencukupi, proses daur ulang dapat gagal atau bahkan menyebabkan instans database terkunci.
DMS mendaur ulang fragmen ruang tabel dengan mengeksekusi pernyataan DDL untuk mengubah skema tanpa mengunci tabel. Namun, tingkat keberhasilan eksekusi pernyataan tersebut tidak dapat mencapai 100%.
View table fragmentation space size
Di Konsol SQL DMS, Anda dapat menjalankan pernyataan SQL berikut untuk melihat ruang terfragmentasi dalam suatu tabel: SHOW TABLE STATUS LIKE 'table_name';. Untuk informasi selengkapnya tentang cara menjalankan kueri di Konsol SQL, lihat Introduction to the SQL window.
Gambar berikut menunjukkan contoh hasil kueri. Parameter Data_free menunjukkan ukuran fragmen ruang tabel dalam byte.

Reclaim fragmented table space
- Masuk ke DMS console V5.0.
Pada bilah navigasi atas, pilih Database Development > Data Change > Lock-free Change.
CatatanJika Anda menggunakan Konsol DMS dalam mode simple, klik ikon
di pojok kiri atas, lalu pilih .Konfigurasikan tiket lock-free schema change. Untuk informasi selengkapnya, lihat Perform lockless schema changes using lockless change tickets.
Setelah fitur lockless change diaktifkan untuk suatu instans, DMS secara otomatis mengambil kembali ruang terfragmentasi setiap kali Anda mengeksekusi tiket lockless schema evolution. Untuk memastikan pengambilan kembali ruang terfragmentasi lebih andal dan meminimalkan dampak pada tabel yang bergantung atau terkait, Anda dapat menggunakan salah satu pernyataan SQL berikut dalam tiket:
OPTIMIZE TABLE table_name;ALTER TABLE table_name COMMENT 'The new comment for the table';ALTER TABLE table_name ENGINE=InnoDB;ALTER TABLE table_name MODIFY COLUMN field_name INT COMMENT 'The new comment for the field';CatatanMeskipun semua pernyataan SQL di atas dapat mengambil kembali ruang, efek pengambilan kembali fragmen biasanya kurang menyeluruh saat dijalankan secara lockless di DMS—termasuk
OPTIMIZE TABLE—dibandingkan dengan menjalankanOPTIMIZE TABLEsecara native.