我正在尝试使用python执行一个select查询,它有超过200000个结果/行。输出200000行的同一查询在DB_引擎(Dbeaver)上大约需要10-15秒,但在尝试使用python执行时,大约需要6分钟。我使用的是psycopg2,SQLALCHEMY引擎
engine = create_engine(SQLALCHEMY_DATABASE_URI, poolclass=NullPool)
conn = engine.raw_connection()
cursor = conn.cursor()
cursor.execute(query)
有谁能建议将其优化到Dbeaver输出时间级别的方法吗
尝试的其他方法:
第1部分:
df = pd.DataFrame()
dfl = []
for chunk in pd.read_sql_query( query, con=engine ,chunksize=5000):
print('chunk from PSQL', chunk)
# Start Appending Data Chunks from PSQL Result set into List
dfl.append(chunk)
# Start appending data from list to dataframe
df = pd.concat(dfl, ignore_index=True)
第2部分:
with tempfile.TemporaryFile() as tmpfile:
copy_sql = "COPY ({query}) TO STDOUT WITH CSV {head}".format(
query=query, head="HEADER"
)
conn = engine.raw_connection()
cur = conn.cursor()
cur.copy_expert(copy_sql, tmpfile)
tmpfile.seek(0)
df = pd.read_csv(tmpfile)
tmpfile.close()
目前没有回答
相关问题 更多 >
编程相关推荐