重建或修复 MySQL 表或索引
mysqlmysqli database更新于 2024/2/5 7:41:00
对表和索引的更改是指 MySQL 如何处理数据类型和字符集。必要的表修复或升级由 CHECK TABLE、mysqlcheck 或 mysql_upgrade 报告。
重建表
重建表的方法有很多种。其中一些已列于下方 −
转储和重新加载方法
ALTER TABLE 方法
REPAIR TABLE 方法
让我们简要了解一下它们中的每一个 −
转储和重新加载方法
如果由于不同版本的 MySQL 无法在二进制(就地)升级或下载后处理表而重建表,则需要使用此转储和重新加载方法。
可以通过转储和重新加载来重建表。这可以通过使用‘mysqldump’并创建转储文件并允许 mysql 重新加载文件来完成。这可以使用以下命令完成 −
mysqldump db_name t1 > dump.sql
mysql db_name < dump.sql
如果必须在单个数据库中重建所有表,则可以指定数据库的名称而不使用任何表名。可以使用以下命令完成 −
mysqldump db_name > dump.sql
mysql db_name < dump.sql
如果必须重建所有数据库中的所有表,则必须使用‘− − all databases’ 选项。可以使用以下命令完成 −
mysqldump --all-databases > dump.sql
mysql < dump.sql
ALTER TABLE 方法
如果需要使用 ALTER TABLE 方法重建表,则可以使用“null” 更改。可以使用 ALTER TABLE 语句来更改表,以便它可以使用存储引擎。让我们举个例子:假设 TblName 是一个 InnoDB 表,下面的语句可用于重建表 −
ALTER TABLE TblName ENGINE = InnoDB;
REPAIR TABLE 方法
REPAIR TABLE 方法仅适用于 MyISAM、ARCHIVE 和 CSV 表。如果表检查操作表明文件已损坏或需要升级,则可以使用语句 REPAIR TABLE。让我们举个例子:为了修复 MyISAM 表,可以执行以下语句 −
REPAIR TABLE TblName;
mysqlcheck −−repair 提供对 REPAIR TABLE 语句的命令行访问。这可能是一种更方便的修复表的方法,因为您可以使用 −−databases 修复数据库中的特定表或使用 −−all−databases 选项修复所有数据库中的所有表。可以使用以下命令完成 −
mysqlcheck −−repair −−databases db_name ...
mysqlcheck −−repair −−all−databases
相关文章
spring boot 如何连接 localhost MySQL
在 MySQL 中检索行时,AND 和 OR 运算符之间有什么区别?
在 MySQL 中更新所有 varchar 列行以在斜线前显示值?
如何在 MySQL 中合并几行记录?
以下是带有动态数组的 MySQL LIKE 查询MySQL 限制范围无法显示前 3 行?
如何将主键作为外部键引用到 MySQL 中的各个表?
MySQL 数据库字段搜索查询的类型?
在 MySQL 中加密和解密字符串?
如何在 MySQL 中仅使用来自另一个表的字符串作为引用向表中添加一行?
在 MySQL 中 SELECT WHERE IN null?
打印
下一节 ❯❮ 上一节