Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Rebuild hoặc Repair bảng và index MySQL

Thay đổi bảng và index liên quan đến cách MySQL xử lý kiểu dữ liệu và character set. Các sửa chữa hoặc nâng cấp bảng cần thiết được báo cáo bởi CHECK TABLE, mysqlcheck, hoặc mysql_upgrade.

Rebuild một Table

Nhiều phương pháp rebuild table. Một số phương pháp:

  • Phương pháp Dump và Reload
  • Phương pháp ALTER TABLE
  • Phương pháp REPAIR TABLE

Phương pháp Dump và Reload

Nếu rebuild table do các phiên bản MySQL khác nhau không xử lý được bảng sau nâng cấp binary (in-place) hoặc tải xuống, dùng phương pháp dump và reload.

Rebuild table bằng cách dump và reload. Dùng mysqldump tạo file dump và cho mysql reload file:

mysqldump db_name t1 > dump.sql
mysql db_name < dump.sql

Nếu rebuild tất cả table trong một database, chỉ định tên database không dùng tên table:

mysqldump db_name > dump.sql
mysql db_name < dump.sql

Nếu rebuild tất cả table trong tất cả database, dùng tùy chọn --all-databases:

mysqldump --all-databases > dump.sql
mysql < dump.sql

Phương pháp ALTER TABLE

Nếu rebuild table dùng ALTER TABLE, có thể dùng "null" alteration. Dùng câu lệnh ALTER TABLE thay đổi table để dùng storage engine. Ví dụ: TblName là bảng InnoDB, câu lệnh dưới rebuild table:

ALTER TABLE TblName ENGINE = InnoDB;

Phương pháp REPAIR TABLE

Phương pháp REPAIR TABLE chỉ áp dụng cho bảng MyISAM, ARCHIVE, CSV. Câu lệnh REPAIR TABLE dùng nếu kiểm tra table gợi ý file bị corrupt hoặc cần nâng cấp. Ví dụ: sửa bảng MyISAM:

REPAIR TABLE TblName;

mysqlcheck --repair cung cấp truy cập command-line cho câu lệnh REPAIR TABLE. Tiện lợi hơn vì có thể dùng --databases sửa table cụ thể trong database hoặc --all-databases sửa tất cả table trong mọi database:

mysqlcheck --repair --databases db_name ...
mysqlcheck --repair --all-databases