2010-06-19 58 views
0

我有一些大的MySQL生产表需要转储,以便我可以在Hadoop中运行一些分析。我应该了解有关生产数据库的转储和查询的最佳实践?如果我只是进行转储/读取(并且不写入),是否需要担心影响生产性能?查询和制作生产数据库的转储

回答

1

是的,你确实需要担心它。 MyISAM表将在读取时锁定,不允许修改,只是其他读取。 InnoDB没有这个问题,但是如果你正在查询大量的数据,它会被锁定。几乎在所有情况下转储都会锁定任何表类型。

通常做的是你设置一个从属数据库,并做所有你的查询。甚至为了报告目的而设置一个奴隶。您将需要停止MySQL服务器以设置主/从配置。但一旦你这样做了一次,你可以使用一个奴隶创建其他奴隶。

1

这取决于数据库大小和复制设置。

最佳设置(意见)将有一个主人不断写入一个奴隶(否则是只读的)。这样你就可以在slave上运行一个mysqldump,并且生产应用程序可以继续写入master,而不必担心mysqldump的阻碍。

声明:我是MySQL爱好者,而不是DBA。谷物盐等

+0

我们在大约一年的时间里将它用于生产,并为我们节省了大量的日常停机时间(10分钟事宜!)。 – Wrikken 2010-06-19 17:25:13