原生方法
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自身的方式是需要优化的,不应该官方的方式对比常规方式有好几倍的性能差异的。