1

我只是想知道我们是否可以在批处理模式下执行二进制文件。我知道可以使用批处理模式执行文本文件mysql < batch-file

这种特性的一个可能动机是,如果您sql从程序创建文件,那么您可能希望以二进制模式进行读/写,因为它速度很快。有没有这样的方式mysql,我只是好奇!!

4

2 回答 2

2

mysql 生成二进制日志,通常用于复制。您可以生成一个虚假的复制日志并说服 mysql 加载它,尽管这很 hacky。通常使用 mysqlbinlog 将复制日志加载到 mysql 中:

mysqlbinlog replication_log | mysql

在执行之前将二进制复制日志转换为文本文件。

请注意,执行 sql 几乎肯定比解析它慢很多,尤其是在生成它方面。所以你几乎肯定在优化错误的东西。

于 2012-07-24T19:25:00.410 回答
1

您可能想尝试使用--hex-blob选项mysqldump来创建纯文本的转储文件。通常你会这样做:

mysqldump --hex-blob ... | gzip -9 > backup.sql.gz

稍后您将恢复:

gunzip -dc backup.sql.gz | mysql ...

在这两种情况下,都...代表连接到数据库所需的命令行选项。

这不是在大型数据库中加载的最有效方式,但在实践中效果很好。

于 2012-07-24T19:35:36.907 回答