У меня есть программа, которая в начале генерирует большой объем данных (несколько ГБ, возможно, более 10 ГБ), а затем несколько раз обрабатывает все данные, что-то делает, обрабатывает все данные, делает что-то ... Такое количество данных не вписывается в мою оперативную память, и когда он начинает пейджинг, это действительно больно. Каков оптимальный способ хранения моих данных и вообще, как решить эту проблему?Как хранить большой объем данных
Должен ли я использовать БД, хотя мне не нужно сохранять данные после окончания моей программы? Должен ли я каким-то образом разделить мои данные и просто сохранить их в файлах и загрузить их, когда они мне понадобятся? Или просто продолжайте использовать ОЗУ и переходите к поисковому вызову?
С БД и файлами возникает проблема. Мне приходится обрабатывать данные по частям. Поэтому я загружаю кусок данных (скажем, 500 Мб), вычисляю, загружаю следующий кусок, а после загрузки и вычисления всего, я могу что-то сделать и повторить цикл. Это означает, что я буду читать с HDD те же куски данных, которые я читал в предыдущем цикле.
Используйте MongoDB, разделите свои данные на логические единицы, сохраните их в документах и используйте [свою структуру агрегации] (https://docs.mongodb.org/manual/aggregation/) для их обработки. Весы до терабайт и просты в использовании и настройке. –