1GBを超えるテキストファイルを処理し、Pythonを使用してデータをMysqlデータベースに保存しようとしています。
以下にサンプルコードを貼り付けました
import os
import MySQLdb as mdb
conn = mdb.connect(user='root', passwd='redhat', db='Xml_Data', host='localhost', charset="utf8")
file_path = "/home/local/user/Main/Module-1.0.4/file_processing/part-00000.txt"
file_open = open('part-00000','r')
for line in file_open:
result_words = line.split('\t')
query = "insert into PerformaceReport (campaignID, keywordID, keyword, avgPosition)"
query += " VALUES (%s,%s,'%s',%s) " % (result_words[0],result_words[1],result_words[2],result_words[3])
cursor = conn.cursor()
cursor.execute( query )
conn.commit()
実際には、データが挿入されている列が18を超えていますが、貼り付けたのは4つだけです(たとえば)
したがって、上記のコードを実行すると、実行時間がいくらかかかりますhours
私の疑問はすべて
- Pythonで1GBのテキストファイルを非常に高速に処理する別の方法はありますか?
- 1GBのテキストファイルを処理し、データをデータベースに非常に高速に保存するフレームワークはありますか?
- 大きなサイズ(1GB)のテキストファイルを数分以内に処理し(可能ですか)、データをデータベースに保存するにはどうすればよいですか?私が懸念しているのは、1GBのファイルをできるだけ速く処理する必要があるが、数時間では処理しないことです。
編集されたコード
query += " VALUES (%s,%s,'%s',%s) " % (int(result_words[0] if result_words[0] != '' else ''),int(result_words[2] if result_words[2] != '' else ''),result_words[3] if result_words[3] != '' else '',result_words[4] if result_words[4] != '' else '')
実際、私は上記の形式で値を送信しています(結果の存在を確認することによって)