我只是想知道我们是否可以在批处理模式下执行二进制文件。我知道可以使用批处理模式执行文本文件mysql < batch-file
。
这种特性的一个可能动机是,如果您sql
从程序创建文件,那么您可能希望以二进制模式进行读/写,因为它速度很快。有没有这样的方式mysql
,我只是好奇!!
我只是想知道我们是否可以在批处理模式下执行二进制文件。我知道可以使用批处理模式执行文本文件mysql < batch-file
。
这种特性的一个可能动机是,如果您sql
从程序创建文件,那么您可能希望以二进制模式进行读/写,因为它速度很快。有没有这样的方式mysql
,我只是好奇!!
mysql 生成二进制日志,通常用于复制。您可以生成一个虚假的复制日志并说服 mysql 加载它,尽管这很 hacky。通常使用 mysqlbinlog 将复制日志加载到 mysql 中:
mysqlbinlog replication_log | mysql
在执行之前将二进制复制日志转换为文本文件。
请注意,执行 sql 几乎肯定比解析它慢很多,尤其是在生成它方面。所以你几乎肯定在优化错误的东西。
您可能想尝试使用--hex-blob
选项mysqldump
来创建纯文本的转储文件。通常你会这样做:
mysqldump --hex-blob ... | gzip -9 > backup.sql.gz
稍后您将恢复:
gunzip -dc backup.sql.gz | mysql ...
在这两种情况下,都...
代表连接到数据库所需的命令行选项。
这不是在大型数据库中加载的最有效方式,但在实践中效果很好。