Computer >> Máy Tính >  >> Lập trình >> MySQL

Xây dựng lại hoặc sửa chữa các bảng hoặc chỉ mục MySQL


Các thay đổi đối với bảng và chỉ mục đề cập đến cách MySQL xử lý các kiểu dữ liệu và bộ ký tự. Việc sửa chữa hoặc nâng cấp bảng cần thiết được CHECK TABLE, mysqlcheck hoặc mysql_upgrade báo cáo.

Tạo lại bảng

Có nhiều phương pháp để xây dựng lại một bảng. Một số trong số chúng đã được liệt kê bên dưới -

  • Phương pháp đổ và tải lại

  • Phương pháp ALTER TABLE

  • Phương pháp BẢNG SỬA CHỮA

Hãy để chúng tôi hiểu ngắn gọn từng người trong số họ -

Phương pháp đổ và tải lại

Nếu các bảng đang được xây dựng lại do thực tế là các phiên bản MySQL phiên bản khác nhau không thể xử lý các bảng sau khi nâng cấp hoặc tải xuống nhị phân (tại chỗ), thì phương pháp kết xuất và tải lại này cần được sử dụng.

Một bảng có thể được xây dựng lại bằng cách kết xuất và tải lại nó. Điều này có thể được thực hiện bằng cách sử dụng ‘mysqldump’ và tạo một tệp kết xuất và cho phép mysql tải lại tệp. Điều này có thể được thực hiện bằng cách sử dụng các lệnh dưới đây -

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

Nếu tất cả các bảng phải được xây dựng lại trong một cơ sở dữ liệu duy nhất, tên của cơ sở dữ liệu có thể được chỉ định mà không cần sử dụng bất kỳ tên bảng nào. Nó có thể được thực hiện bằng cách sử dụng lệnh dưới đây -

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

Nếu tất cả các bảng trong tất cả các cơ sở dữ liệu phải được xây dựng lại, thì tùy chọn ‘- - tất cả các cơ sở dữ liệu’ phải được sử dụng. Nó có thể được thực hiện bằng cách sử dụng lệnh dưới đây -

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

Phương pháp ALTER TABLE

Nếu một bảng cần được tạo lại bằng phương pháp ALTER TABLE, thì có thể sử dụng thay đổi "null". Một câu lệnh ALTER TABLE có thể được sử dụng để thay đổi bảng để nó có thể sử dụng công cụ lưu trữ. Chúng ta hãy lấy một ví dụ:Giả sử TblName là một bảng InnoDB, câu lệnh dưới đây có thể được sử dụng để xây dựng lại bảng -

ALTER TABLE TblName ENGINE = InnoDB;

Phương pháp BẢNG SỬA CHỮA

Phương pháp BẢNG SỬA CHỮA chỉ áp dụng cho các bảng MyISAM, ARCHIVE và CSV. Câu lệnh REPAIR TABLE có thể được sử dụng nếu thao tác kiểm tra bảng cho thấy rằng tệp đã bị hỏng hoặc yêu cầu nâng cấp. Hãy để chúng tôi lấy một ví dụ:Để sửa chữa bảng MyISAM, câu lệnh dưới đây có thể được thực thi -

REPAIR TABLE TblName;

mysqlcheck −−repair cung cấp quyền truy cập dòng lệnh vào câu lệnh REPAIR TABLE. Đây có thể là một phương tiện sửa chữa bảng thuận tiện hơn vì bạn có thể sử dụng các cơ sở dữ liệu −− để sửa chữa một bảng cụ thể trong cơ sở dữ liệu hoặc tùy chọn −−all − cơ sở dữ liệu để sửa chữa tất cả các bảng trong tất cả các cơ sở dữ liệu. Nó có thể được thực hiện bằng cách sử dụng các lệnh dưới đây -

mysqlcheck −−repair −−databases db_name ...
mysqlcheck −−repair −−all−databases