0

次のような値でいっぱいのテキストファイルがあります。

最初の行は、次のような列名のリストです。

col_name_1, col_name_2, col_name_3 ......(600 columns)

次のすべての列には、次のような値があります。

1101,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1101,1,3.86,65,0.46418,65,0.57151...

これをmysqlにインポートする最良の方法は何ですか?

具体的には、データが適切にロードされるように適切な CREATE TABLE コマンドを作成する方法を教えてください。1101 または 3.86 または 0.57151 のような上記の値をすべて取り込む最適な汎用データ型は何ですか。これは一度だけ使用する必要があるため、ストレージの観点からテーブルが非効率的であることは心配していません。

Phpmyadminの使用など、他の関連する質問でいくつかの提案を試しました(大量のデータのためにクラッシュすると思います)

助けてください!

4

3 に答える 3

0

CSV ファイルのデータは正規化されていません。これらの 600 列は、いくつかの関連するテーブルに分散している可能性があります。これは、これらのデータを処理するための推奨される方法です。fgetcsv()その後、PHP で CSV ファイルを 1 行ずつ読み取るために使用できます。

MySQL で CSV を処理するには、600 列のテーブルを作成し (私が思うに)、LOAD DATA LOCAL INFILEステートメントを発行します (または、おそらく を使用しますmysqlimportが、それについてはよくわかりません)。

最も一般的なデータ型は、より大きな値の場合はVARCHARorTEXTである必要がありますが、もちろん、数値や日付などで使用するとセマンティクスが失われます.

于 2012-05-14T04:01:57.460 に答える
0

phpmyadmin タグが含まれていることに気付きました。

PHPMyAdmin はこれをすぐに処理できます。各列を作成するタイプを「魔法のように」決定し、すべてのデータCREATEと同様にテーブルを作成します。INSERTについて心配する必要はありませんがLOAD DATA FROM INFILE、PHPMyAdmin の魔法のツールに頼らずに何が起こっているのかを正確に知りたい場合は、この方法の方が安全です。

于 2012-05-14T04:11:10.833 に答える