Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menuntut Semula Ruang Cakera dalam MySQL InnoDB Selepas Memadam Data?

Bagaimanakah Saya Boleh Menuntut Semula Ruang Cakera dalam MySQL InnoDB Selepas Memadam Data?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-03 09:35:16329semak imbas

How Can I Reclaim Disk Space in MySQL InnoDB After Deleting Data?

Menuntut Semula Ruang Cakera dalam MySQL InnoDB selepas Pemadaman Data

Ini adalah senario biasa bahawa selepas memadam data daripada jadual MySQL menggunakan InnoDB, yang diperuntukkan ruang cakera kekal diduduki. Ini boleh membawa kepada kekangan ruang cakera yang serius, terutamanya dalam aplikasi berskala besar.

Mengapa InnoDB tidak mengeluarkan ruang selepas pemadaman?

Enjin storan InnoDB MySQL beroperasi pada prinsip "delete-in-place", yang bermaksud bahawa apabila baris data dipadamkan, ia hanya ditandakan sebagai ruang kosong dalam fail sedia ada. dibuang secara fizikal. Ini membolehkan perolehan semula data yang cekap dengan mengelakkan keperluan untuk menulis semula data secara besar-besaran.

Cara untuk menuntut semula ruang cakera

Walaupun InnoDB tidak melepaskan ruang cakera secara automatik, ada ialah cara untuk menuntut semula secara manual:

1. Jadual Optimumkan:

Menjalankan arahan "OPTIMIZE TABLE" pada jadual yang berkenaan akan menandakan ruang kosong bersebelahan sebagai boleh diguna semula. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa ini sebenarnya tidak melepaskan ruang sebaliknya menyediakannya untuk digunakan semula.

2. InnoDB File-Per-Table:

Dengan mengkonfigurasi pelayan untuk menggunakan innodb_file_per_table, setiap jadual akan mempunyai fail .ibd tersendiri. Apabila data dipadamkan daripada jadual, saiz fail .ibd yang sepadan akan berkurangan selepas menjalankan "OPTIMIZE TABLE." Pendekatan ini melibatkan penciptaan pangkalan data baharu dan memulihkan data, menjadikannya penyelesaian yang lebih terlibat.

3. Buang dan Pulihkan:

Salah satu kaedah paling berkesan untuk menuntut semula ruang cakera dalam InnoDB ialah melakukan sandaran logik pangkalan data, menggugurkan pangkalan data sedia ada, dan kemudian memulihkan sandaran. Proses ini mengalih keluar data yang dipadam secara fizikal dan mengecilkan saiz fail .ibd.

4. Alatan Pihak Ketiga:

Terdapat alatan pihak ketiga seperti "pt-shrink" yang boleh membantu dalam menuntut semula ruang cakera dalam MySQL. Alat ini melakukan sandaran logik, mengoptimumkan jadual dan memulihkan data kepada pangkalan data baharu.

Awas:

Adalah penting untuk memahami bahawa pemulihan data tidak dapat dilakukan selepas kaedah penambakan ruang cakera telah digunakan. Oleh itu, adalah amat disyorkan untuk membuat sandaran pangkalan data anda sebelum meneruskan dengan mana-mana teknik yang dicadangkan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menuntut Semula Ruang Cakera dalam MySQL InnoDB Selepas Memadam Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn