web-dev-qa-db-ja.com

MySQLワークベンチテーブルデータインポートウィザードが非常に遅い

2000万行と2列のcsvファイルをデータベースにインポートする必要がありますが、MySQL Workbenchのデータインポートウィザードでこれを実行しようとすると、非常に遅くなります。バー。

これを行うには、より高速な方法が必要です。

19
BlueStarry

常にLoad Data Infileデータの巨大なセットの最初の試みとして。

Load Data Infile のMysqlマニュアルページ。

この質問に対するいくつかの答えを書きましたが、ピア比較については、この男の質問と、私の Answer と、WorkbenchとLoad Data Infileの時間比較を参照してください。

16
Drew

これは代替です。 CSVデータをSQLスクリプトにダンプします。このためのコードを書き留める必要があります。基本的に、csvデータは以下のコマンドのように変換されます
INSERT INTO TABLE_NAME values(1,2),(1,3),....;
MySQL Shellスクリプトを使用し、SOURCEコマンドを使用
mysql>ソースC:/ Users/Desktop/sql scripts/script.sql
数百万件のレコードのCSVを直接インポートする場合と比較して、データのインポートが速くなります。

3
Gaurav Lad

コードを書きたくない場合は、HeidiSQLのような別の無料のGUIクライアントを試すことをお勧めします。 MySQLワークベンチよりもはるかに迅速にCSV /テキストファイルをインポートします。

3
malnosna

データセットのインポートには常にデータのロードをロードすることをお勧めします。不便なのは、インポートする前にテーブル構造を作成する必要があることです。インポートウィザードを使用すると、csvまたはjsonから新しいテーブルを直接作成できます。

この遅さの理由は次のとおりだと思います:ワークベンチはpythonインポートウィザードに使用します。

何らかの理由で構造を作成したくない場合は、プロセスを開始し、csvからテーブルを作成してからプロセスを強制終了できます。次に、テーブルからすべてを削除し、データをファイルにロードします。それはい「ハック」のようなものですが、私にとってはうまくいきました。

1
adnls

MySQLワークベンチでも同様の問題がありました。私が見つけた代替手段は、Toad for MySQL( https://www.toadworld.com/m/freeware/1469

MySQL管理者経由で40分かかり、リモートMySQLサーバーに接続します。 MySQLサーバー自体では、アップロードに数分かかります。 toadを使用すると、リモートサーバーに接続して数分でアップロードできます。 HeidiSQLを試してみましたが、インポートに適しているとは思いませんでした。

1
Dilan JIvanji