AliSQL menyediakan fitur Purge Large File Asynchronously untuk meningkatkan stabilitas layanan database Anda.
Informasi latar belakang
Saat mengeksekusi pernyataan DROP TABLE untuk menghapus data, file data InnoDB yang terkait dihapus langsung dari sistem file. Jika ukuran file data tersebut besar, proses penghapusan dapat menyebabkan masalah stabilitas serius pada Antarmuka Sistem Operasi Portabel (POSIX). Fitur Purge Large File Asynchronously memulai thread untuk menghapus file data secara asinkron. Saat Anda mengeksekusi pernyataan DROP TABLE, file data yang sesuai disimpan sebagai file sementara, dan thread dimulai untuk menghapus file data secara asinkron dan lancar.
Prosedur
Eksekusi pernyataan berikut untuk melihat pengaturan variabel global instance RDS Anda:
SHOW GLOBAL VARIABLES LIKE '%data_file_purge%';Kode berikut menunjukkan hasil kueri contoh:
+----------------------------------------+-------+ | Variable_name | Value | +----------------------------------------+-------+ | innodb_data_file_purge | ON | | innodb_data_file_purge_all_at_shutdown | OFF | | innodb_data_file_purge_dir | | | innodb_data_file_purge_immediate | OFF | | innodb_data_file_purge_interval | 100 | | innodb_data_file_purge_max_size | 128 | | innodb_print_data_file_purge_process | OFF | +----------------------------------------+-------+Tabel berikut menjelaskan variabel global.
Variabel
Deskripsi
innodb_data_file_purge
Menentukan apakah akan mengaktifkan fitur Purge Large File Asynchronously.
innodb_data_file_purge_all_at_shutdown
Menentukan apakah akan menghapus semua file ketika host tempat instance RDS Anda berada dimatikan.
innodb_data_file_purge_dir
Direktori yang menyimpan file sementara.
innodb_data_file_purge_immediate
Menentukan apakah akan menyimpan file data dan hanya mencabut tautan file data tersebut.
innodb_data_file_purge_interval
Interval waktu penghapusan file. Unit: milidetik.
innodb_data_file_purge_max_size
Ukuran maksimum file tunggal yang dapat dihapus. Unit: MB.
innodb_print_data_file_purge_process
Menentukan apakah sistem menampilkan bilah kemajuan untuk menunjukkan kemajuan penghapusan file.
CatatanKami merekomendasikan agar Anda menggunakan pengaturan berikut:
set global INNODB_DATA_FILE_PURGE = on; set global INNODB_DATA_FILE_PURGE_INTERVAL = 100; set global INNODB_DATA_FILE_PURGE_MAX_SIZE = 128;Eksekusi pernyataan berikut untuk melihat kemajuan penghapusan file:
select * from information_schema.innodb_purge_files;Kode berikut menunjukkan hasil kueri contoh:
+--------+---------------------+--------------------+---------------+-------------------------+--------------+ | log_id | start_time | original_path | original_size | temporary_path | current_size | +--------+---------------------+--------------------+---------------+-------------------------+--------------+ | 0 | 2021-05-14 14:40:01 | ./file_purge/t.ibd | 146800640 | ./#FP_210514 14:40:01_9 | 79691776 | +--------+---------------------+--------------------+---------------+-------------------------+--------------+Tabel berikut menjelaskan parameter dalam hasil yang dikembalikan.
Parameter
Deskripsi
start_time
Titik waktu saat penghapusan dimulai.
original_path
Path asli folder tempat file data disimpan sebelum dihapus.
original_size
Ukuran asli file data sebelum dihapus. Unit: byte.
temporary_path
Path folder tempat file sementara disimpan saat dihapus.
current_size
Ukuran file sementara yang akan dihapus. Unit: byte.