У меня довольно большая таблица (180 миллионов записей) в SQL Серверная база данных. Пример ниже:
my_table>> columns: Date, Value1, Value2, Valeu3
У меня также есть сценарий python, который запускается одновременно с pool.map()
, и в каждом дочернем процессе (итерации) устанавливается соединение для доступа к my_table
и извлечения фрагмента с помощью приведенного ниже сценария и выполнения других вычислений:
select * from my_table where Date is between a1 and a2
У меня вопрос: когда сценарий python выполняется параллельно, каждый дочерний процесс загружает все данные таблицы SQL (180 миллионов строк) в памяти, а затем нарезать ее в зависимости от условия где?
Если это так, то каждый дочерний процесс должен был бы загрузить 180 миллионов строк в память, и это могло бы заморозить все.
Я почти уверен что если я сделаю запрос к огромной таблице на SQL Сервере пару раз, все данные будут загружены в память SQL Сервером только один раз для первого запроса, а другие запросы будут использовать данные, загруженные в ОЗУ первым запрос.