Какой тип файлов предпочтительнее использовать: JSON или база данных, когда имеется 5 миллионов файлов?

Каким будет наиболее эффективным и ресурсоемким способом обработки запросов при создании API, которое возвращает JSON с данными пользователя при обращении к /get_user_data/ методу? Нужно учесть, что данные только читаются и не изменяются, и их общее количество составляет около 5 миллионов записей. Есть два варианта реализации: 1) хранить данные в базе данных в формате id | json_string_data, или 2) загрузить 5 миллионов отдельных JSON файлов на CDN и читать их динамически, изменяя URL вида ../data/{id}.json. Какой из этих вариантов будет более быстрым и менее ресурсоемким по нагрузке? Имейте в виду следующие дополнительные сведения: 1) данные не являются критическими с точки зрения безопасности, 2) на CDN отключено отображение списка файлов, и 3) API используется для авторизации, обеспечиваемой другим сервисом, чтобы скрыть источник данных от конечного пользователя. Спасибо за ваше мнение и помощь!
  • 22 ноября 2023 г. 8:00
Ответы на вопрос 2
При наличии 5 миллионов файлов предпочтительней использовать базу данных, так как она обеспечит более эффективное хранение и управление данными.

Для обработки запросов и создания API, возвращающего JSON с данными пользователя, рекомендуется использовать базу данных. Хранение данных в формате id | json_string_data позволит эффективно обрабатывать запросы и избежать необходимости загрузки 5 миллионов отдельных JSON файлов.

Загрузка файлов на CDN и чтение их динамически может оказаться более ресурсоемким и медленным по сравнению с использованием базы данных. Даже с отключенным отображением списка файлов на CDN, чтение и загрузка отдельных файлов может вызвать задержки и увеличить время отклика.

Мы рекомендуем использовать базу данных для хранения и обработки такого объема данных. Это обеспечит быстрое выполнение запросов и минимальную нагрузку на сервер. Базы данных также обладают возможностями оптимизации и индексирования, что может быть полезно при обработке множества запросов и быстром доступе к данным.
Если вы всегда знаете имя файла и вам не требуется возможность поиска по записям, то вам не нужно использовать базу данных. Вместо этого, вы можете просто сохранить все файлы локально на сервере, где работает ваш API. Это избавит вас от необходимости использования CDN для распределения файлов по миру, так как ваш API будет доступен только с одного сервера.
Похожие вопросы