Ответ 1
В идеале, если вы играете с большим количеством данных, вам необходимо убедиться, что при обработке ваших данных не осталось ресурсов. Однако вам просто нужно найти разумный способ увеличить использование ваших ресурсов.
Я бы определенно пошел с базой данных, потому что это самый известный способ наиболее удобного запроса и хранения данных. Вы не указали, что именно делает ваше приложение, поэтому я могу просто дать вам общее мнение о том, как я буду делать в таком сценарии;
- Если размер данных вашей базы данных действительно большой, как вы говорите в миллиардах, и если вы читаете данные для аналитических целей или отчетов, вам лучше найти технику интеллектуального анализа данных, например кубы и т.д. Это поможет вам структурировать ваши данные таким образом чтобы сократить время запроса.
- Если выше не вариант, найдите способ горизонтальной или вертикальной разбивки ваших данных, это также зависит от того, как вы действительно извлекаете данные и как их можно группировать вместе.
- Найти способ запроса группы строк (например, где pk в (1,2,3,4,..., 100) вместо запроса каждой строки в момент, как вы упомянули ранее, группировка может увеличить ответ запроса в экспоненциальным образом.
- Лучше всего найти первичный ключ в самих данных, чтобы ваши данные были отсортированы по порядку вашего первичного ключа физически, и вы узнаете свой первичный ключ, прежде чем вставлять его. Однако, если вы не запрашиваете первичный ключ, лучше разместить индексы разумных индексов для увеличения времени ответа на запрос.
- Храните соединение с базой данных в течение всего срока службы приложения и повторно подключайтесь только в случае его удаления. и использовать пул соединений, если ожидается несколько подключений к базе данных.