Cara Membersihkan Enjin Storan InnoDB
Walaupun kelebihannya, enjin storan InnoDB boleh menjadi berselerak dengan data daripada jadual yang dipadamkan, berpotensi kembung pangkalan data dari semasa ke semasa. Untuk membersihkan data yang tidak diperlukan ini dan mengekalkan kecekapan pangkalan data, ikuti langkah berikut:
Langkah 1: Buang Data Pangkalan Data
Eksport keseluruhan pangkalan data ke dalam fail teks SQL menggunakan mysqldump . Sebagai contoh, anda boleh mencipta fail bernama SQLData.sql.
Langkah 2: Gugurkan Pangkalan Data
Padam semua pangkalan data kecuali mysql dan information_schema. Pastikan anda mempunyai semua geran pengguna dengan menyalin direktori mysql ke lokasi sandaran (/var/lib/mysql_grants).
Langkah 3: Flush Transactional Changes
Jalankan arahan SET GLOBAL innodb_fast_shutdown = 0; untuk membersihkan sebarang perubahan transaksi yang tinggal.
Langkah 4: Matikan dan Ubah Suai Konfigurasi
Matikan MySQL dan tambahkan baris berikut pada fail /etc/my.cnf anda:
[mysqld] innodb_file_per_table innodb_flush_method=O_DIRECT innodb_log_file_size=1G innodb_buffer_pool_size=4G
Langkah 5: Bersihkan Fail
Padam ibdata dan ib_logfile fail daripada direktori data MySQL anda.
Langkah 6: Mulakan semula MySQL
Mulakan semula MySQL untuk mencipta semula ibdata1 dan ib_logfile* fail.
Langkah 7: Import Data
Import fail SQLData.sql yang dibuang sebelum ini untuk memulihkan data pangkalan data anda.
Selepas melengkapkan langkah ini, ibdata1 akan mengandungi hanya metadata jadual, manakala setiap jadual InnoDB akan disimpan secara berasingan. Menjalankan OPTIMIZE TABLE kini akan mengecilkan fail jadual (/var/lib/mysql/mydb/mytable.ibd) dengan berkesan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membersih Enjin Storan InnoDB Saya dengan Cekap untuk Meningkatkan Prestasi Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!