Вопрос в том, что написано на банке. В настоящее время у меня есть проект, над которым я работаю с текущим рабочим процессом:
- вытащить все данные из рабочего пространства в python
- поиск в каждом столбце списка ключевых терминов
- вернуть хиты
- следующую базу данных и повторить
Мне удалось втиснуть некоторую дополнительную эффективность в l oop, запустив concurrent.futures при поиске ключевого слова ( шаг 2 и 3), что позволяет мне запускать все ядра одновременно. Теперь я хотел посмотреть, смогу ли я получить некоторую дополнительную эффективность от l oop, ускорив вызовы базы данных (шаг 1)
Вот мой текущий код
import psycopg2
conn = pg.connect(
host=host,
database=database,
username=username,
password=password
)
SQLselect= '''
select *
from {}
'''
for databese in databases:
cur=conn.cursor('database')
call=cur.execute(SQLselect.format(database))
rows=cur.fetchall
cols=[desc[0] for desc in cur.description]
temp = pd.DataFrame(rows, columns=cols
Вместо этого метода я также пытался использовать метод copy_to в psycopg2. Я подумал, что это будет быстрее, так как метод copy_from работает так хорошо. Тем не менее, это на самом деле оказалось медленнее, чем код, который я выше. Можно ли как-нибудь ускорить это или сделать это более эффективно?