私はユニ日以来、sqlとpythonでかなり錆びています。mysql.connectorを使って結果をストリームする方法
fetchallの代わりにクエリ結果の行ごとに読む方法を知りたいですか?ここ
は私の現在のテストコードです:
#!/usr/bin/python
import time
import csv
import mysql.connector
start_time = time.time()
cnx = mysql.connector.connect(user='user', password='1234',
host='10.0.10.100',
database='serverDB')
try:
cursor = cnx.cursor()
cursor.execute("select * from serverDB.task")
result = cursor.fetchall()
with open("query.csv", "wb") as csv_file:
csv_writer = csv.writer(csv_file)
csv_writer.writerow([i[0] for i in cursor.description]) # write headers
csv_writer.writerows(result)
for x, row in enumerate(result):
print x
print row
#print result
finally:
cnx.close()
print "there are ", numrows, "rows"
print("--- %s seconds ---" % (time.time() - start_time))
なぜ結果を1行ずつ読みたいのですか?各行を計算する前に各行を使う必要がある場合は、各行を操作できるように 'list'に読み込むだけです。 – Acepcs
@Acepcs ermは150millionのレコードを持っていると言っていますが、リストは膨大なレコードをどのように処理していますか? – Desmond
@ ling7334これはフィルタリング後のものです – Desmond