2012-07-24 53 views
1

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

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

回答

1

您可能想尝试使用选项mysqldump创建纯文本转储文件。通常,你会做到这一点:

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

稍后您将恢复:

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

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

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

2

mysql生成二进制日志,通常用于复制。你可以生成一个假的复制日志,并说服MySQL加载它,虽然这很哈克。通常使用mysqlbinlog将复制日志加载到mysql中:

mysqlbinlog replication_log | mysql 

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

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

+0

是的,我知道它不会帮助优化,但我只是想,如果它存在或不存在,无论如何感谢您的答案。我会试试看。 – 2012-07-24 19:27:57