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

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

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

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

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

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

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

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

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

Похожие вопросы
ITK academy Казань
от 75 000 до 125 000 ₽
Инком Нижний Новгород
от 160 000 до 230 000 ₽
Инком Нижний Новгород
от 160 000 до 230 000 ₽