首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >rsync和MyISAM表

rsync和MyISAM表
EN

Stack Overflow用户
提问于 2009-07-31 18:21:54
回答 4查看 2.3K关注 0票数 0

我正在尝试使用rsync备份MySQL数据。表使用MyISAM存储引擎。

我的期望是,在第一次rsync之后,随后的rsyncs将会非常快。结果是,如果对表数据进行了更改,操作就会慢下来。

我用一个包含真实数据的989 MB MYD文件做了一个实验:

试验1-收回未经修改的数据

  • rsync -a orig.MYD copy.MYD
    • 需要一段时间作为expected

  • rsync -a orig.MYD copy.MYD
    • instantaneous -加速比在millions

测试2-收回稍微修改过的数据

  • rsync -a orig.MYD copy.MYD
    • 需要一段时间作为expected

  • UPDATE table SET counter = counter + 1 WHERE id = 12345
  • rsync -a orig.MYD copy.MYD
    • 与原始copy!

一样长

怎么回事?为什么rsync要花费很长时间才能复制一个微小的变化?

编辑:实际上,测试2中的第二个rsync与第一个rsync一样长。rsync显然又在复制整个文件。

编辑:原来是从本地复制到本地,-整个文件是隐含的。即使没有完整的文件,表演还是很糟糕。

EN

回答 4

Stack Overflow用户

发布于 2009-07-31 18:27:10

rsync仍然需要计算块散列以确定更改了什么。不修改的情况可能是查看文件的时间/大小的快捷方式。

票数 1
EN

Stack Overflow用户

发布于 2009-07-31 18:28:54

rsync使用算法查看文件是否已更改,然后查看文件的哪些部分发生了更改。在大型数据库中,您的更改通常分布在文件的大段中。这是rsync最坏的情况。

票数 0
EN

Stack Overflow用户

发布于 2009-10-07 17:04:12

Rsync是基于文件的。如果您找到了一种使用基于块的系统执行此操作的方法,那么您可以只备份已更改的块/字节。

LVM快照可能是这样做的一种方式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1214071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档