Когда выбирать NoSQL вместо SQL? Сравнение SQL против NoSQL.

Мы обсудим различные параметры, которые мы учитываем при выборе идеальной базы данных для нашей службы приложений.
SQL не устарел, просто у нас теперь другая альтернатива
Прежде чем мы перейдем к сравнению баз данных SQL и NoSQL, давайте потратим некоторое время, чтобы оценить тот факт, что SQL уже давно используется в отрасли (более 30 лет) и по-прежнему занимает хорошее место в современной среде разработки приложений.
Время сравнения… ⚡
- SQL: оптимизирован для хранения, NoSQL: оптимизирован для вычислений/запросов
- SQL: нормализованный/реляционный, NoSQL: денормализованный (ненормализованный)/иерархический
- SQL: структура данных на основе таблиц, NoSQL: в зависимости от БД структурами данных являются:
★ Ключ-значение (DynamoDB, Redis, Voldemort)
★ Хранилище с широкими столбцами (Cassandra, HBase)
★ Коллекция документов (MongoDB, CouchDB, DynamoDB)
★ Графические структуры (Neo4J, InfiniteGraph)
- SQL: специальные запросы, NoSQL: внедренные представления
- SQL: вертикальное масштабирование и дорого. Можно масштабировать горизонтально, но сложно и отнимает много времени, NoSQL: масштабируется горизонтально и дешево
- SQL: фиксированная схема, изменение требует изменения всей базы данных NoSQL: схемы являются динамическими
- SQL: хорош для OLAP, NoSQL: хорош для OLTP
- SQL: свойства ACID (Атомарность, Согласованность, Изолированность, Стойкость), NoSQL: свойства BASE (Basically Available, Soft state, Eventual consistency)
Когда выбрать NoSQL?
✔ Хорошо известные и понятные типы шаблонов доступа.
✔ Требуются простые запросы.
✔ Не требуется много данных.
✔ Имеется общий бизнес-процесс.
✔ OLTP приложения
Если это так, то NoSQL является идеальной базой данных и будет наиболее эффективной. Мы должны структурировать модель данных специально для поддержки данного шаблона доступа.
Когда НЕ выбирать NoSQL?
✔ Специальные запросы. например, вариант использования приложения OLAP.
✔ Может потребоваться реорганизация данных.
✔ Сложные запросы, внутренние объединения, внешние объединения и т.д.
✔ Сложные вычисления значений
Итак, вкратце, для нашей прикладной службы, если мы хорошо понимаем шаблоны доступа, они повторяемы, они согласованы и масштабируемость является важным фактором, то NoSQL является идеальным выбором.
Также рекомендуем прочитать: