Итак, я пытался выяснить реальный итог, когда речь заходит о NoSQL против СУБД, и всегда получаю ответ, который его не совсем урезает.В моем поиске действительно есть 2 основных различия между NoSQL и SQL, и только 1 является настоящим преимуществом.
ACID vs BASE - NoSQL обычно пропускает некоторые функции ACID в SQL, что-то вроде «обмана», это путь к повышению производительности, оставляя этот уровень абстракциипрограммисту.Это уже освещалось в предыдущих постерах.
Горизонтальное масштабирование - Реальное преимущество NoSQL - горизонтальное масштабирование, иначе говоря, шардинг.Учитывая, что NoSQL «документы» являются своего рода «автономным» объектом, объекты могут находиться на разных серверах, не беспокоясь о соединении строк с нескольких серверов, как в случае с реляционной моделью.
Допустим, мы хотим вернуть объект, подобный следующему:
post {
id: 1
title: 'My post'
content: 'The content'
comments: {
comment: {
id: 1
}
comment: {
id: 2
}
...
views: {
view: {
user: 1
}
view: {
user: 2
}
...
}
}
В NoSQL этот объект в основном будет храниться как есть, и, следовательно, может находиться на одном сервере как своего рода автономный объект.без необходимости объединения данных из других таблиц, которые могут находиться на других серверах БД.
Однако в реляционных БД к сообщению необходимо будет присоединиться с комментариями из таблицы comments
, а также с представлениями из таблицы views
.Это не будет проблемой в SQL ~ UNTIL ~ БД разбита на осколки, и в этом случае «комментарий 1» может находиться на одном сервере БД, а «комментарий 2» - на другом сервере БД.Это значительно затрудняет создание того же объекта в РСУБД, который был масштабирован по горизонтали, чем в БД NoSQL.
Могут ли какие-либо эксперты по БД подтвердить или аргументировать эти точки?