用python对dataframe进行多处理SQL查询
我正在改编一个python脚本,我发现它是一个类似问题的答案(56400556)。该脚本可以工作,但当前SQL结果存储在一个列表中,而我希望将其导出到数据帧(或CSV的第二个选项) 有没有办法并行运行SQL查询(因为每个查询大约需要10分钟)并将这些数据存储在数据帧中。它可以是一个包含所有查询结果的数据帧,也可以是每个查询一个数据帧,这无关紧要 第二个问题是避免将所有SQL查询仅列为一个参数更改,而是有一个SQL查询和一个要输入的参数列表(例如:“UK”、“IT”、“US”等)用python对dataframe进行多处理SQL查询,python,sql,postgresql,multiprocessing,Python,Sql,Postgresql,Multiprocessing,我正在改编一个python脚本,我发现它是一个类似问题的答案(56400556)。该脚本可以工作,但当前SQL结果存储在一个列表中,而我希望将其导出到数据帧(或CSV的第二个选项) 有没有办法并行运行SQL查询(因为每个查询大约需要10分钟)并将这些数据存储在数据帧中。它可以是一个包含所有查询结果的数据帧,也可以是每个查询一个数据帧,这无关紧要 第二个问题是避免将所有SQL查询仅列为一个参数更改,而是有一个SQL查询和一个要输入的参数列表(例如:“UK”、“IT”、“US”等) 谢谢您是否在国家
谢谢您是否在
国家/地区
上添加了索引?是的,我在SQL表中添加了索引,但这不会加快查询速度数据库中有多少行?数以百万计的?
from multiprocessing import Pool
import pandas as pd
import psycopg2
import os
query_load = [("SELECT * FROM customer_table WHERE country ='UK' "),
("SELECT * FROM customer_table WHERE country ='IT' ")]
db_conn = psycopg2.connect(
host="hostname",
database="databasename",
user="username",
password="password")
def read_sql(query):
return pd.read_sql(query, db_conn)
if __name__ == '__main__':
with Pool() as p:
data_load = p.map(read_sql, query_load)
print(data_load)