Задать вопрос
@O_oo

Какую базу данных использовать для хранения метаданных?

Разрабатываю приложение, которое должно сохранять координаты разметки и ряд метаданных в локальный файл БД. Метаданные не имеют четкой структуры и могут иметь по-разному заполненные поля. В основе будет использоваться большое количество операций на чтение. Отсюда вопрос - что будет предпочтительнее использовать? Лично мой выбор пал на mongoDB, однако хотел бы услышать стороннее мнение.
  • Вопрос задан
  • 218 просмотров
Подписаться 1 Простой 12 комментариев
Решения вопроса 1
mayton2019
@mayton2019
Bigdata Engineer
Основной use-case при работе с любыми данными это "запрос".

Ты должен задать себе вопрос как я буду эти данные искать? По каким атрибутам?
Например базы данных семейства key-value почти всегда всем подходят и всем нравятся
за высокую скорость и дешевизну. Но это - только при условии что вы делаете поиск по ключевым атрибутам.
Но вы не сможете к ним сделать агрегации (group by).

Ничего плохого не могу сказать про Mongo. Но загрузи сначала туда хотя-бы сотню тысяч
ситетических документов и смоделируй нагрузку. Вдруг Монга уже на этом этапе захлебнется
и не потянет. Получается что твой выбор был неправильный.

Из личного опыта. Часто выбирают какую-то БД из того что человек (команда) уже раньше
с ней поработали и уже имеет опыт. И такое реально было и с Ораклом и с MS-SQL. Люди их
выбирали не потому что они хороши а чаще всего потому что "так привыкли". И десяток
лицензий были уже давно куплены. Почему-бы не использовать. Заказчик оплатил.
Так жить проще. Так и живут. И так строят архитектуры.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@rPman
Помимо поиска и чтения, есть вопрос по многопользовательскому доступа к данным, особенно на время записи, атомарные транзакции - одна из причин, почему выбирают сложные реляционные ьд (да это есть и в некоторых nosql).

Если не нужно следить за целостностью данных и искать по атрибутам, только по идентификатору, то подойдёт любая база данных, даже простое хранение файлов на объект с любой сериализацией данных, современные файловые системы отлично работают с миллионом файлов в каталоге (правда при таких объемах я бы все же советовал норм базу), причем никакая реализация бд не будет давать быстрее доступ чем чтение файла.

Круче только хранение данных в каком-нибудь постом формате в блочном устройстве диска или раздела (например идентификатор записи - ее смещение в файле, а там как то хранить ее размер и сами данные), ни одна другая реализация не даст чтение и запись быстрее (под вопросом удаление записей, но и тут есть эффективные решения), ну только что своя реализация кэширования данных, но это очень хардкор...
Ответ написан
Ваш ответ на вопрос

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

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