Когда выбирать 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 является идеальным выбором.

Также рекомендуем прочитать:

  1. Как перейти с MySQL на MariaDB? MySQL vs MariaDB
  2. Введение в MongoDB. Руководство для начинающих
  3. Как найти уязвимость SQL-инъекции и защититься от нее?
  4. Как установить последнюю версию MongoDB на RHEL / CentOS 8?