mysql批处理模式使用二进制文件

时间:2012-07-24 19:05:13

标签: mysql database batch-file

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

这种功能的一个可能动机可能是,如果您要从程序创建sql文件,那么您可能希望以二进制模式进行读/写,因为它很快。在mysql中是否存在任何此类方式,我只是好奇!!

2 个答案:

答案 0 :(得分:2)

mysql生成二进制日志,通常用于复制。你可以生成一个虚假的复制日志,并说服mysql加载它,虽然这很糟糕。通常使用mysqlbinlog:

将复制日志加载到mysql中
mysqlbinlog replication_log | mysql

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

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

答案 1 :(得分:1)

您可能希望尝试使用--hex-blob的{​​{1}}选项来创建纯文本的转储文件。通常你会这样做:

mysqldump

稍后你会恢复:

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

在这两种情况下,gunzip -dc backup.sql.gz | mysql ... 表示连接到数据库所需的命令行选项。

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