Mysql
 sql >> база данни >  >> RDS >> Mysql

Файлът с данни на MySQL няма да се свие

Размерът на файла на пространствата за таблици InnoDB никога няма да се намали автоматично, независимо колко данни изтриете.

Това, което бихте могли да направите, въпреки че е много усилия, е да създадете едно пространство за таблица за всяка таблица, като зададете

innodb_file_per_table

Дългата част от това е, че трябва да експортирате ВСИЧКИ ДАННИ от mysql сървъра (настройването на нов сървър би било по-лесно) и след това да импортирате отново данните. Вместо един единствен файл ibdata1, който съдържа данните за всяка таблица, ще намерите много файлове, наречени tablename.ibd които съхраняват данните само за една единствена таблица.

След това:

Когато след това изтриете много данни от таблици, можете да позволите на mysql да пресъздаде файла с данни, като издаде

alter table <tablename> engine=myisam;

за да превключите към MyIsam (и да изтриете файла с данни InnoDB за тази таблица) и след това

alter table <tablename> engine=innodb;

за да пресъздадете таблицата.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да копирам csv файл с данни в Amazon RedShift?

  2. NOW() Примери – MySQL

  3. Как да изградите JSON масив от mysql база данни

  4. Филтриране на набора от резултати на съхранена процедура

  5. Добавяне на допълнителна стойност на колона с INSERT ... SELECT в MySQL