43

合計で約600,000行の2つのテーブルを含むSQLファイルがあります。昨日、ファイルをFedora 16のMySQLデータベースにインポートしようとしましたが、ファイルのインポートに2時間以上かかりました。私のWindowsPCでは、7分かかりました。私のLinuxとWindowsのマシンはまったく同じハードウェアを持っています。私の友人のカップルもそれを試しました、そして彼らは同じような経験をしました。

使用していたコマンドは次のとおりmysql -u root database_name < sql_file.sqlです。

なぜこのような速度の違いがあるのですか?

4

2 に答える 2

74

私の考えでは、Fedora 16はトランザクション/同期セマンティクスを尊重していますが、Windowsはそうではありません。計算すると、2時間で600,000回の更新は1分あたり5,000回になります。これは、ディスクの回転速度と同じ桁数です。

SET autocommit=0;インポートファイルの最初とCOMMIT;最後に追加してみてください。詳細については、このページを参照してください。

于 2012-04-19T11:35:58.550 に答える
6

.sqlファイルをオプションとしてエクスポートしてインポートしてみませんか。mysqldumpBULK INSERTを使用してバックアップを取りながらこれらのオプションを試してください。

--extended-insert:複数行の挿入ステートメントを使用する

--quick:行データのバッファリングを行わないでください。テーブルが大きい場合に適しています

注:max_allowed_packet .sqlファイルを生成する前に、my.cnfファイルで=32M以上の値を増やす必要があることを確認してください。

于 2012-04-19T11:41:07.033 に答える