python - 请问如何可以优化提升pandas的read_sql的速度呢?
问题描述
小弟的需求需要在多个数据库之间查询数据并关联,所以小弟选择了使用pandas,通过read_sql读取数据至dataframe加工后直接生成目标数据。但是目前遭遇了一个问题:read_sql的速度非常慢,例如,在oracle库中读取37W数据量(22个字段)的表至dataframe耗时需要4分半。代码如下:
import pandas as pdimport sqlalchemy as sqlora_engine=sql.create_engine(’oracle://test01:test01@test01db’)ora_df1=pd.read_sql(’select * from target_table1’,ora_engine)
耗时4分32秒
甚至小弟使用另外一个简单粗暴的方法都会比read_sql快很多。代码如下:
import pandas as pdimport sqlalchemy as sqlora_engine=sql.create_engine(’oracle://test01:test01@test01db’)conn=ora_engine.raw_connection()cursor=conn.cursor()queryset=cursor.execute(’select * from target_table1’)columns=[for i[0] in queryset.description]df_data=queryset.fetchall()ora_df1=pd.DataFrame()ora_df1.columns=columnsora_df1.append(df_data)
耗时1分31秒
这里想请教一下各位大大,有什么方法可以优化提升pandas的read_sql的速度,非常感谢大家~
问题解答
回答1:试试read_sql_tablehttp://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_sql_table.html#pandas.read_sql_table
相关文章:
1. javascript - 如何用最快的速度C#或Python开发一个桌面应用程序来访问我的网站?2. android的checkbox在xml添加和在java代码中添加样式不一样?3. 前端 - 使用vue2服务端渲染的时候,如何在服务端请求数据,然后给vue渲染4. java - springMVC配置的controller无法返回jsp文件5. mysql 存储过程 和 函数有什么用??6. python - 关于beautifulsoup获取文档内容7. 路由 - nginx访问不了根目录下的文件怎么解决?8. javascript - 看一些高手写代码单独用 “$”和“_” 来表示变量,什么时候单独使用这两个字符?9. javascript - 项目用IE浏览器打开修改前端内容,后台数据修改了,但是前端页面内容不变,用谷歌浏览器测试前端页面可以刷新,求大神解决。10. mysql - jdbc的问题
