Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Plik danych MySQL nie skurczy się

Rozmiar pliku przestrzeni tabel InnoDB nigdy nie zmniejszy się automatycznie, bez względu na to, ile danych usuniesz.

To, co możesz zrobić, chociaż jest to bardzo pracochłonne, to stworzyć jedną przestrzeń dla każdego stołu poprzez ustawienie

innodb_file_per_table

Długa część tego jest taka, że ​​musisz wyeksportować WSZYSTKIE DANE z serwera mysql (ustawienie nowego serwera byłoby łatwiejsze), a następnie ponownie zaimportować dane. Zamiast jednego pliku ibdata1, który przechowuje dane dla każdej tabeli, znajdziesz wiele plików o nazwie tablename.ibd które przechowują dane tylko dla jednej tabeli.

Następnie:

Kiedy następnie usuniesz dużo danych z tabel, możesz pozwolić mysql odtworzyć plik danych, wydając

alter table <tablename> engine=myisam;

aby przejść do MyIsam (i usunąć plik danych InnoDB dla tej tabeli), a następnie

alter table <tablename> engine=innodb;

aby odtworzyć tabelę.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wykonać wiele instrukcji SQL w jednym mysql_query?

  2. Policz rekordy w tabeli mysql jako różne kolumny w zależności od różnych wartości kolumny

  3. Jak poprawnie używać CASE..WHEN w MySQL?

  4. Identyfikowanie relacji - wiele do wielu

  5. Zmiany w my.cnf nie obowiązują (Ubuntu 16.04, mysql 5.6)