0

我使用 MySql 作为开发数据库以及托管我的网站的服务器。现在我每天都将新数据打入数据库并使用 SQLyog 将其保存为 SQL 转储。但是当涉及到更新服务器 Mysql 数据库上当天的数据时,我必须截断表,然后插入新数据。这导致以下问题:

  1. 每个表中的数据为 5000+ 行,插入查询无法执行。所以我必须分批插入 2000 行数据。

  2. 当我截断特定表并且尚未插入新数据时,网站上的任何请求都将导致根本没有数据。这是5到7分钟。

  3. 每天只有大约 300 行添加到每个表中,但我必须为一个表插入完整的数据。

请建议我如何对我的本地 MySql 数据库进行增量备份,以便我可以在服务器上更新相同的内容,而不是直到那天更新完整的数据。

4

2 回答 2

1

如果它是一个简单的开发环境,我实际上不建议走增量转储路线。AFAIK,mysql没有提供内置的方法来做到这一点。如果你真的想这样做,你可以使用二进制日志。使用二进制日志重播第二天的语句。在内部,MySQL 使用二进制日志进行复制。(免责声明,我以前从未这样做过,而且我敢肯定,如果您从开发副本中插入或删除,您会遇到问题。)

或者,您可以每次创建另一个数据库,将转储导入其中,然后重新配置您的应用程序以使用新数据库。一旦你重新配置,删除昨天的数据库,你就很好了。没有停机时间...

于 2010-08-18T03:22:33.270 回答
0

你为什么不直接使用命令行转储和恢复如下 -

创建转储 -

mysql -u root -h localhost -p db_name > db_name_dump_version.sql

这会将数据库转储到文件 db_name_dump_version.sql

然后从中恢复-

mysql -u root -h localhost -p db_name < db_name_dump_version.sql

命令行 mysql 速度非常快,因此即使是一百万行数据库,您也不必等待超过 10 秒。

于 2010-08-18T02:31:27.953 回答