Многопроцессорная / многопоточность для запросов к базе данных в Python - PullRequest
0 голосов
/ 31 мая 2019

У меня есть миллионы записей в базе данных, и я хочу прочитать их через Python и сохранить в фрейме данных pandas.Проблема в том, что время обработки запроса на выбор очень велико.Чтобы сократить время обработки запроса, я пытаюсь выполнить многопоточность, я создал 3 потока и делаю запрос на основе каждого потока, например

Select * from ( select *,rownum over (order by col1) rn from table) where rn%3=0 


Select * from ( select *,rownum over (order by col1) rn from table) where rn%3=1


Select * from ( select *,rownum over (order by col1) rn from table) where rn%3=2

. Затем я выполняю каждый запрос с многопоточностью в Python путем создания пакета потоков..

Но это также не сильно сокращает время

Есть ли другой способ, который я могу использовать, чтобы сократить время чтения запроса.Примечание. Я использовал оба соединения: jdbc и odbc

Ответы [ 2 ]

0 голосов
/ 01 июня 2019

Следующая ссылка помогла мне Многопроцессорная обработка с подключением JDBC и пулированием Я могу получить около 25% прироста на моем local.machine.

0 голосов
/ 31 мая 2019

Вы можете использовать многопоточность, только если базовый механизм базы данных поддерживает это. Вы должны проверить это. По вашему вопросу, я думаю, что прилагаемая ссылка поможет вам: смотри это Если ответ поможет вам, помогите сообществу, выбрав его в качестве лучшего ответа.

...