Menuntut Semula Ruang Storan InnoDB
Enjin MySQL InnoDB menguruskan data dalam fail yang dipanggil ibdata1, di mana ia menyimpan data jadual, indeks, metadata dan komponen infrastruktur lain. Dari masa ke masa, data jadual yang dipadamkan boleh terkumpul dalam ibdata1, menyebabkan ruang storan melimpah.
Kaedah untuk Membersihkan Enjin Storan InnoDB
Untuk mengecilkan ibdata1 dan mengosongkan ruang, ikuti langkah ini:
-
Buang dan Lepaskan Pangkalan Data: Eksport semua pangkalan data ke fail SQL (SQLData.sql) dan lepaskan semua pangkalan data kecuali MySQL dan information_schema.
-
Siram Data Transaksi: Laksanakan SET GLOBAL innodb_fast_shutdown = 0; untuk mengosongkan semua perubahan transaksi daripada fail log.
-
Konfigurasikan MySQL: Tambahkan tetapan yang sesuai pada fail my.cnf, termasuk innodb_file_per_table, innodb_flush_method=O_DIRECT, innodb_log_file_size=1G dan innodb_buffer_pool_size=4G.
-
Padam Ibdata dan Fail Log: Alih keluar fail ibdata* dan ib_logfile* daripada direktori data.
-
Mulakan semula MySQL: Mulakan MySQL, yang mencipta ibdata1 baharu dengan yang lebih kecil saiz.
-
Import Data SQL: Import SQLData.sql untuk memulihkan pangkalan data.
Faedah Kaedah Ini
- Mengosongkan ruang storan yang sebelum ini diduduki oleh yang dipadamkan jadual.
- Meningkatkan prestasi dengan mengurangkan saiz ibdata1, meningkatkan prestasi I/O.
- Menyediakan kawalan yang lebih baik ke atas storan data dengan mengasingkan data jadual dan mengindeks ke dalam fail yang berasingan.
Nota:
Pastikan pengguna memberi dipelihara dengan menyalin direktori skema mysql dan memulihkannya selepas proses pembersihan. Selain itu, optimumkan saiz fail log berdasarkan keperluan pelayan dan ciri beban kerja.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menuntut Semula Ruang Storan InnoDB yang Terbuang dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!