@holllop

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

Есть довольно странный вопрос на который я вроде знаю ответ, но одновременно и нет.
Я не так относительно давно начал изучать основы баз данных. И многое для себя открыл, но накопились некоторые микровопросы, которые я не до конца понял.
1. Как понять какая база данных нужна для проекта реляционная или не реляционная ?
Да я вроде бы понимаю, что этот выбор нужно делать исходя из: структуры данных, гибкости схемы данных, масштабируемость, типов запросов/сложности запросов, скорости доступа к данным. Но может я не учитываю ещё какой-то фактор, ну и конечно я не совсем понимаю как исходя из этих факторов всё-таки сделать выбор ?(хотелось бы пример).
2.Какую конкретно базу выбрать ?
Тут примерно таже песня вроде бы надо основываться на: функциональности, масштабируемости, производительности, надежности. Но я видел и решения типа пиши на той с которой лучше знаком. И я взял ту, но как говориться немножечко не ту. Опять таки хотелось бы какой-то пример в духе в такой-то отрасли чаще используют такую базу (только давайте без дебатов на тему эта база быстрее той на столько-то в такой узкой задаче, я надеюсь вы понимаете о чём я).
  • Вопрос задан
  • 137 просмотров
Решения вопроса 2
vabka
@vabka
Токсичный шарпист
Если не знаешь, почему тебе нужна нереляционная - бери реляционную, тк наиболее гибкое и какие-то возможные проблемы будет легче всего обойти.

Какую конкретно? Ту, которую лучше знаешь, если не можешь назвать конкретную причину, почему лучше изучить другую и взять другую. Например вот я беру postgres по-умолчанию, но вот у меня проект, который требует минимального жора ресурсов и наиболее простой инфраструктуры - тогда беру sqlite.
Или наоборот - я понимаю, что у меня какие-то специфичные требования по консистентности и доступности, система у меня будет распределённая, а запросы у меня будут исключительно key-value, да и желательно ещё иметь возможность подписки на изменения каких-то ключей - тогда беру etcd.
Ответ написан
Комментировать
@alexalexes
1. Если в разрабатываемой системе нет потребности производить нечеткий поиск, получать сверхбыстрый ответ на запрос в реальном времени (не более пары миллисекунд), производить аналитику данных в самых разных разрезах. У вас в потоках данных определены сущности с четкими реквизитами и сущности имеют высокую связность, то в 99% случаях вы даже не повернете голову в сторону нереляционных СУБД, будете использовать реляционные.
2. На самом деле, просто зависит от того, как сложно администрировать СУБД в том масштабе, в которой развилась база данных. Сначала берут первую попавшуюся, или с тем, с чем освоились более-менее, а потом смотрят с течением времени, как сложно нанять нужного специалиста на администрирование, удобно ли масштабировать экземпляры баз данных при возросшей нагрузке, удобно подымать экземпляры из небытия, держать непрерывный аптайм. Вот тут уже выясняется специфика работы предметной области и необходимость переезжать на подходящее окружение.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы