mysql - 仅备份 myIsam .MYD

标签 mysql backup myisam

是否可以只备份.MYD文件? (如果/当发生灾难性故障时重建 .MYI)

<小时/>

我想在异地备份相当大的表,同时最大限度地减少带宽使用。数据很重要,索引文件(5G+)则不然。这个想法是运行 .frm 和 .myd 文件的定期备份,并在发生灾难性故障(即本地备份因火灾或被盗而损坏)时重建索引。

使用 .frm 和 .myd 进行修复只会给我一条错误消息。有简单的解决方法吗?

最佳答案

没有。您还必须转储 .frm 以便捕获架构。是的,.MYI 可以重新创建。是的,“使用 .frm 和 .MYD 进行修复”应该可以;我从来没有测试过。您可以通过停止 MySQL、将这两个文件复制到不同的数据库,然后尝试修复来测试它。

MyISAM 不仅已被弃用,而且在下一个版本 (8.0) 中也已消失。 future 基本上没有使用 MyISAM 的正当理由。不使用它的原因有很多。

如果 .MYI 文件比 .MYD 文件大,则您可能做错了什么。一小部分表的索引确实多于数据,但这种情况很少见。当有人说“我对每一列都建立了索引”时,我就知道他是新手,不明白这一点:

  • 标志(和其他低基数列)上的索引可能永远不会被使用。
  • “复合”索引通常很有用。
  • MySQL 很少在同一个 SELECT 中使用两个索引。

关于mysql - 仅备份 myIsam .MYD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41924465/

相关文章:

mysql - 2个单独表格的总和

mysql - Facebook 登录页面和缓存

mysql - 排除域中的所有电子邮件记录(以字符串开头的记录除外)

mysql - MySQL中删除多个表中具有相同id的数据

Mercurial 本地存储库备份

python - 如何使用 python 进行 tar 备份

php - 使用 WHERE 子句加速 MySQL (MyISAM) 计数

php - 如何使用 codeigniter 从表中导出某些行?

MySQL表的不同存储引擎

mysql - Slick 为 MySQL (MyISAM) 生成错误的 SQL