Rumah  >  Soal Jawab  >  teks badan

MySQL InnoDB tidak mengosongkan ruang cakera selepas memadamkan baris data daripada jadual

Saya mempunyai jadual MySQL menggunakan enjin storan InnoDB ia mengandungi kira-kira 2M baris data. Apabila saya memadamkan baris data daripada jadual, ia tidak membebaskan ruang cakera yang diperuntukkan. Selepas menjalankan arahan optimize table, saiz fail ibdata1 juga tidak berkurangan.

Adakah terdapat cara untuk menuntut semula ruang cakera daripada MySQL?

Saya berada dalam situasi yang teruk; apl berjalan di kira-kira 50 lokasi berbeza dan kini saya kehabisan ruang cakera di hampir kesemuanya.

P粉148434742P粉148434742371 hari yang lalu650

membalas semua(2)saya akan balas

  • P粉183077097

    P粉1830770972023-10-15 17:09:49

    Saya sendiri mengalami masalah yang sama.

    Apa yang berlaku ialah walaupun selepas memadamkan pangkalan data, innodb masih tidak mengosongkan ruang cakera. Saya perlu mengeksport, menghentikan mysql, memadam fail secara manual, mulakan mysql, mencipta pangkalan data dan pengguna, kemudian import. Alhamdulillah saya hanya mempunyai 200MB baris tetapi ia menyimpan 250GB fail innodb.

    Reka bentuk gagal.

    balas
    0
  • P粉340980243

    P粉3409802432023-10-15 16:24:36

    MySQL tidak mengurangkan saiz ibdata1. sekali. Walaupun anda menggunakan 优化表 untuk mengosongkan ruang yang digunakan oleh rekod yang dipadamkan, ia akan menggunakannya semula kemudian.

    Kaedah lain ialah mengkonfigurasi pelayan untuk menggunakan innodb_file_per_table,但这需要备份、删除数据库和恢复。积极的一面是,在 优化表格.

    balas
    0
  • Batalbalas