Когда НЕ использовать NoSQL?

Несколько дней назад появилась статья о Hacker News, которая достигла первой страницы под названием что-то вроде   "2 случая, когда нельзя использовать Mongodb" , но я действительно больше не могу его найти...

  • Кто-нибудь знает, где я могу найти описанную выше статью?
  • Какие случаи возникают при сбое NoSQL?

Ответ 1

Мы используем MongoDB для хранения тонн и тонны аналитических данных, для которых нам все равно, если некоторые вещи иногда теряются при сбое сервера. Данные действительно хорошо подходят для MongoDB, и это было бы кошмаром, если бы мы использовали базу данных SQL для этого. Но для банковских транзакций мы даже не рассматривали MongoDB. Блокировка записи может быть проблемой для некоторых людей. С другой стороны, MongoDB поддерживает легкое очертание, намного проще, чем с SQL. Sharding позволяет нам масштабироваться горизонтально, что является огромным плюсом для наших данных.

Ответ 2

В любом разумном определении "NoSQL" должно включать в себя не-SQL-RDBMS в своей области (поскольку нет разумной причины, по которой реляционная модель не может удовлетворять тем же требованиям, что и другие модели NoSQL). Если вы согласитесь с этим, то нет ограничений на то, что могут делать СУБД NoSQL. Нам больше не понадобится SQL - никогда!

К сожалению, среди лидеров мысли NoSQL, похоже, существует общее предположение, что "NoSQL" означает "не реляционный". Это очень неудачно, потому что если реляционная модель игнорируется, то NoSQL никогда не заменит SQL для многих целей. (Я считаю само собой разумеющимся, что найти долгосрочную замену реляционной модели для SQL на самом деле будет хорошей вещью:)

Ответ 3

Вы не хотите использовать NoSQL, как правило, когда вы....

... не хотят использовать SQL!/hardy har har

Большинство решений NoSQL, которые я видел, похоже, попадают в подход хранилища ключей и не являются реляционными. Они склонны отказываться от свойств ACID.

Итак, когда вы оцениваете систему баз данных, когда вам не нужна ACID, когда вам не нужна реляционная алгебра, когда вам нужно хранить KV, то подход NoSQL - ваш друг.

Отметим также, что существует множество систем "NoSQL", и все они работают на несколько разных подходах.