@PendalF89

Как хранить большое количество json-файлов?

Здравствуйте!
Требуется хранить на сервере примерно 60 млн json-файлов и обращаться к ним из MySQL.
В данный момент они все лежат в zip-архивах и ссылки на них лежат в базе MySQL (используется проектом).
Я упёрся в максимальное количество мелких файлов, которые может держать Ubuntu.

Суть вопроса: как лучше организовать хранение с максимальной экономией места на диске?

Варианты, которые пришли мне в голову:
  1. Храним JSON прямо в MySQL. Это удобно, но база разрастётся, будет занимать много места.
  2. Хранить JSON в MongDB, а ссылку на id хранить в MySQL. Это менее удобно, но может MongoDB сжимает файлы лучше?
  3. Хранить zip-файл прямо в MySQL. Ни разу так не делал.
  4. Хранить в zip-файле несколько JSON-файлов. Неудобно, дополнительные сложности в реализации.
  • Вопрос задан
  • 1017 просмотров
Решения вопроса 2
DexterHD
@DexterHD
Software Engineer, Teamlead, CTO
Возможно лучшим решением было бы действительно хранить их в MongoDB.
Тем более что она поддерживает компрессию данных, а в довесок появляется возможность легко манипулировать ими, искать в них информацию, индексировать, обновлять и т.п.
Ответ написан
Комментировать
sim3x
@sim3x
KISS

Просто хранение:
Сделайте новый диск
При создании укажите количество inode на которое расчитываете
Если файлы по 500кб+, сжимайте bzip/gzip, если меньше - експериментируйте (маленькие файлы не всегда стоит сжимать)

Хранение и поиск по файлам - лучше сразу запихивать в постгрес или в монгу (если файлы не страшно потерять)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
profesor08
@profesor08
упёрся в максимальное количество мелких файлов

Если такое случилось, то надо как-то уменьшать их количество. Запихни их какие-то пакеры/архивы/что угодно аналогичное. И при обращении к блоку, считывать нужную часть.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы