且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

使用python的pandas读取数据库中数据,初始化到dataframe的速度过慢问题解决思路

更新时间:2022-01-24 02:17:32

原生方法

100万数据,在oracle数据库中,使用最方便的pandas自带的read_sql方法

import pandas as pd
import sqlalchemy as sql
db_engine=sql.create_engine('oracle://test01:test01@test001db')
db_df1=pd.read_sql('select * from my_table1',db_engine)

代码是方便了,不过用了快10分钟,dataframe才初始化完成

通过JDBC查询的方式


import pandas as pd
import sqlalchemy as sql
db_engine=sql.create_engine('oracle://test01:test01@test001db')
conn=ora_engine.raw_connection()
cursor=conn.cursor()
queryset=cursor.execute('select * from my_table1')
columns=[for i[0] in queryset.description]
jdbc_data=queryset.fetchall()
db_df1=pd.DataFrame(jdbc_data,columns=["A1","B2","C3"])
db_df1.columns=columns
db_df1.append(df_data)


多几行代码,不过2分钟就完成了dataframe的初始化动作,看来pandas自身的方式是需要优化的,不应该官方的方式对比常规方式有好几倍的性能差异的。