Membersihkan Enjin Storan InnoDB: Panduan
Dalam bidang penyelenggaraan pangkalan data, persoalan bagaimana untuk membersihkan data usang daripada InnoDB enjin storan sering timbul.
Bolehkah InnoDB Dibersihkan tanpa Membina semula?
Malangnya, tidak seperti MyISAM, tidak mungkin untuk mengalih keluar data yang dipadamkan secara langsung daripada enjin InnoDB tanpa membina semula keseluruhan pangkalan data. Ini kerana InnoDB menggunakan infrastruktur kompleks yang menyimpan pelbagai jenis maklumat dalam fail ibdata1nya, termasuk data jadual, indeks dan metadata. Mengoptimumkan jadual hanya akan menyatukan data dalam ibdata1, bukan mengecilkannya.
Pembersihan Infrastruktur InnoDB
Untuk membersihkan enjin InnoDB dengan berkesan, pendekatan yang lebih komprehensif diperlukan:
-
Buang Data dan Gugurkan Pangkalan Data: Eksport semua data ke dalam fail SQL dan lepaskan semua pangkalan data yang tidak penting (tidak termasuk mysql dan information_schema).
-
Transaksi Flush dan Shutdown MySQL: Konfigurasikan innodb_fast_shutdown kepada 0 untuk lengkap pembilasan transaksi, kemudian tutup MySQL.
-
Ubah suai my.cnf: Dayakan innodb_file_per_table, konfigurasikan innodb_flush_method kepada O_DIRECT, tetapkan innodb_log_file_size kepada 25% daripada innodb_buffer_pool_size dan tambahkan innodb_buffer_pool_size.
-
Padam ibdata dan ib_logfile: Alih keluar fail ini, secara pilihan termasuk semua subdirektori kecuali untuk /var/lib/mysql/mysql.
Mulakan MySQL: Buat semula ibdata1 dan ib_logfile0/1.- Import Data: Pulihkan pembuangan SQL untuk mengisi fail pangkalan data yang baru dibuat.
Nota:
Dengan mendayakan innodb_file_per_table, setiap jadual InnoDB akan berada dalam fail .ibd sendiri di luar ibdata1, memudahkan pengoptimuman dan penyingkiran data pada masa hadapan.- Pulihkan fail skema mysql jika ralat berlaku disebabkan oleh skema mysql yang digugurkan.
-
Dengan proses ini, fail ibdata1 baharu akan sahaja mengandungi metadata jadual, mengurangkan saiznya dengan ketara dan memastikan persekitaran InnoDB yang bersih untuk menyimpan data aktif.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membersih Enjin Storan InnoDB Dengan Berkesan Tanpa Membina Semula Seluruh Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!