我有一個Postgres數據庫,並且我已經在表格中插入了一些數據。由於Internet連接的問題,有些數據無法寫入。我試圖寫入數據庫的文件很大(大約330712484行 - 即使是ws -l
命令也需要一段時間才能完成。)將數據插入表格的最快方法
現在,列row_id
是(整數)主鍵,並且已經被索引。由於有些行不能被插入到表中,我想將這些特定的行插入到表中(我估計只有1.8%的數據不會插入到表...)作爲一個開始,我想看到主鍵是數據庫裏面,像這樣:
conn = psycopg2.connect(connector)
cur = conn.cursor()
with open(fileName) as f:
header = f.readline().strip()
header = list(csv.reader([header]))[0]
print(header)
for i, l in enumerate(f):
if i>10: break
print(l.strip())
row_id = l.split(',')[0]
query = 'select * from raw_data.chartevents where row_id={}'.format(row_id)
cur.execute(query)
print(cur.fetchall())
cur.close()
conn.close()
即使對於數據的前幾排,檢查,小號即主鍵是否存在需要非常多的時間。
這樣做的最快方法是什麼?
是IDS順序沒有差距? –
不幸的是我不確定。數據是匿名的,'row_id'是數據的一部分。我想說的是,但不幸的是,他們不是爲了... – ssm