1

バイナリ ファイルをバッチ モードで実行できるかどうか疑問に思っていました。を使用して、テキスト ファイルをバッチ モードで実行できることを知っていますmysql < batch-file

このような機能の考えられる動機の 1 つはsql、プログラムからファイルを作成している場合、高速なバイナリ モードで読み取り/書き込みを行いたい場合です。にそのような方法はありますかmysql、私はただ興味があります!!

4

2 に答える 2

2

mysql は、通常はレプリケーションに使用されるバイナリ ログを生成します。かなりハックですが、偽のレプリケーション ログを生成し、mysql にそれをロードさせることができます。通常、レプリケーション ログは mysqlbinlog を使用して mysql にロードされます。

mysqlbinlog replication_log | mysql

これにより、実行前にバイナリ レプリケーション ログがテキスト ファイルに変換されます。

SQL の実行は、ほぼ確実に解析よりもはるかに遅くなることに注意してください。特に、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 に答える