2016-03-31 15 views
0

私は10百万行のデータファイルを持っています.2つのフィールド、IDと名前があります。ファイルの合計サイズは650 MBです。Load Data Infileはすべてのデータを最初にメモリにロードしますか?

このデータをデータベーステーブルにロードするにはどのくらい時間がかかりますか?それは多対多の関係のための交差テーブルです。

これを行うには長い時間がかかるようです。ロード中は、select文を実行しようとします。しかし、それは空です。

MariaDB [wordDS]> select count(*) from Category_Term; 
+----------+ 
| count(*) | 
+----------+ 
|  0 | 
+----------+ 
1 row in set (12.02 sec) 

データのロードは、INFILEはかなりしばらくの間、実行されている、そしてなぜ任意のデータは、まだ表にロードされていませんか?私はすべてのデータ行が最初にメモリに読み込まれ、最終的に読み込みの最後にテーブルに書き込まれると思われます。それ以外の場合は、 'select *'ステートメントを使用してロード状況を確認できます。

答えて

0

これをサポートするテーブル(InnoDBなど)では、通常、トランザクションのコンテキスト内にロードされるため、完了するまで何も表示されません。その後、すべてのデータが突然利用可能になります。

1つずつ読み込む必要がある場合は、1つのスプレッドシートを複数の部分に変換して順番に読み込む必要があります。

私は大きなファイルを小さな部分に分割して進歩の感覚を得るのが好きです。 "file 0/1 complete"よりも "file 23/100 complete"を見るほうがずっと良いです。

+0

1,000万行の読み込みにどれくらいの時間がかかりますか? – user697911

+0

あなたのMySQLデータベースのチューニング、ハードウェア、サーバーの負荷、テーブル上の他のクエリに完全に依存しています...何が起きているかについての大まかなアイデアとして、 'SHOW PROCESSLIST'を見てください。それは30秒からあなたがいくつかの超悪い幸運を経験している場合は決してないでしょう。 – tadman

+0

一晩中、一日もまだ終わっていません。これは正常ですか? – user697911

関連する問題