我现在有一个数据库,大约有500万行数据,每一行每天都用数据更新。我每小时更新近200000行,所以我的表是InnoDB。现在我已经知道这是我的主数据库,但我还需要将所有这些信息报告回一个网站,供大多数人选择(基本上很少有更新/插入/删除)。
我的问题是,对我来说什么是最好的选择?12-24小时的数据延迟是完全可以接受的,所以我应该有一个主->从类型的情况?我是否应该每12小时转储一次主数据库,并根据需要简单地替换网站的版本,将少量更新/删除发送到我首先执行的SQL文本文件?
这是一个项目,将在未来12个月内迅速增长,所以我真的想作出最好的选择现在。我们的数据库是飞行,因为我们有一个非常强大的服务器为它,但我想确保一旦我们推出的网站,它也优化。一个例子是,如果我们每天转储数据库并替换旧的数据库,那么我必须考虑将要发生的几个更新。如果主/从设置更适合这种情况,您能提供一些文档的链接,帮助我优化设置吗?

最佳答案

您可以打开bin日志记录(无论如何,在主设置中都会打开),然后手动(或通过cronjob)FLUSH LOGS并将最后一个binlog(例如,每12个小时)发送到读从服务器。
此时,您可以使用标准的mysql工具(mysqlbinlog)来读取日志并将其导入您的read实例
mysql binlog/path/to/binlog | mysql-u-p
确保您阅读了有关将多个binlog传递给mysqlbinlog命令的问题的注释here
此方法假定读取主机在开始此方法之前与数据库的完整快照同步。

10-07 16:04
查看更多