Что общего у большинства хранилищ, называемых NoSQL?
- Что значит NoSQL?
NoSQL — не «без SQL», а размен: жертвуют соединениями, произвольными запросами и частью гарантий ради горизонтального масштаба, гибкой модели или скорости.
- Модель данных проектируется под запросы
- Согласованность часто итоговая, транзакции — в пределах документа или ключа
- Многие NoSQL поддерживают SQL-подобные языки запросов
А ещё «Not only SQL»
Подробно
Под названием скрывается несколько разных семейств — ключ-значение, документные, wide-column и графовые, — и общего у них меньше, чем кажется. Объединяет их именно отказ от универсальности: модель данных затачивается под известные заранее сценарии доступа, что позволяет распределять данные по узлам. Плата в том, что работа, которую раньше делала база (соединения, проверка целостности), переезжает в приложение.
Что хотят услышать
- Общий размен гарантий на масштаб.
- Моделирование от запросов.
Частые ошибки
- Считать NoSQL единой технологией с общими свойствами.
- Выбирать такое хранилище ради «гибкости схемы», не понимая, что схему теперь поддерживает приложение.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗Полный запрет на использование языка запросов
- ✗Хранение данных только в оперативной памяти ради скорости
- ✗Обязательная поддержка всех свойств ACID
- ✓Отказ от части реляционных возможностей ради масштабирования и гибкой схемы
Что спросят дальше
- Какие семейства NoSQL принято выделять?
- Когда переход на NoSQL не оправдан?
Разбор темы
- NoSQL: семейства и когда их выбирать
Почему появился NoSQL, моделирование от access patterns, четыре семейства хранилищ, BASE против ACID и горизонтальное масштабирование.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.