2017-02-07 1 views
0

ich eine InnoDB-Tabelle mit großen Tischgröße haben (etwa 7 GB), ich bereits etwa 80% ihrer Zeilen löschen, Das Problem ist die Tabellengröße bleibt gleich,MySQL, löschen doesnt inno Tabelle reduzieren Tabellengröße

Die Tabelle innodb_file_per_table ist ON,

Wie verkleinere ich die Tabellengröße, damit sie den tatsächlichen Zustand widerspiegelt und mehr Speicherplatz spart?

+0

Bereits beantwortet hier: http://dba.stackexchange.com/a/24963/42478 –

Antwort

0

Es hängt ...

Wenn Sie die Tabelle mit innodb_file_per_table=ON gebaut, dann können Sie OPTIMIZE TABLE jetzt tun. (Stellen Sie sicher, dass es immer noch ON ist.)

Wenn =OFF, dann ist die Tabelle in der Tabellendatei ibdata1 und der einzige Weg, um den Raum zu dem OS zurückzukehren ist von alle Tabellen Dumping, ibdata1 entfernen, dann das Nachladen ablegen. Dies ist mühsam und riskant. Inzwischen wird der freie Raum durch die DELETEs erstellt von INSERTs Zukunft, etc. verwendet werden

Mehr discussion von großen Löschungen.