我有一个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