我正在将pandas.read_sql与sqlite数据库一起使用,并且运行速度非常慢。 我有一个具有800行和49列的表(数据类型仅为TEXT和REAL),它需要3分钟才能从数据库中获取数据到数据框。 DB-File和python脚本在同一台机器和同一文件系统上运行。
有什么方法可以加快pandas.read_sql吗?
这是代码片段:
self.logger.info('{} - START read_sql: {}'.format(table))
result = pd.read_sql("select * from {}".format(table), self.dbconn,
index_col=indexcolname)
self.logger.info('{} - END read_sql: {}'.format(table))
答案 0 :(得分:0)
我自己找到了解决方案: 问题是使用连接作为实例属性:self.dbconn 如果我总是启动一个新连接并在结束时将其关闭,性能绝对没有问题!
conn = self.create_connection(self.db_file)
self.logger.info('{} - START from sql: {}'.format(self.botid, table))
Result = pd.read_sql("select * from {}".format(table), conn,
index_col=indexcolname)
self.logger.info('{} - END from sql: {}'.format(self.botid, table))
conn.close()