View
883
Download
1
Category
Preview:
DESCRIPTION
Краткий обзор о возможностях MongoDB. Позиционирование среди других СУБД. Репликация. Шардинг.
Citation preview
Что это? Как готовить? С чем едят?
Тимофей Миронов
mironov@timeliner.ru
bug0r
Что это?
• Документ-ориентированная NoSQL
• Масштабируемая и отказоустойчивая
• Бесплатная
• Стартап – 10Gen (Seqoia, Flybridge)
Кто использует?
Позиционирование
Что умеет?
Отказоустойчивость Репликация
Масштабирование Шардинг
Map-Reduce
Большие объекты GridFS
Серверная логика JavaScript
Геоданные Геоиндекс
Чем оперируем?
BSON (binary serialized JSON) schemaless
Пример синтакиса
SELECT a,b FROM users WHERE age=33
db.users.find({age:33},{a:1,b:1})
SELECT * FROM users WHERE age>33
db.users.find({age:{$gt:33}})
SELECT * FROM users WHERE a=1 or b=2
db.users.find({$or:[{a:1},{b:2}]})
SELECT * FROM users WHERE age=33 ORDER BY name
db.users.find({age:33}).sort({name:1})
UPDATE users SET a=1 WHERE b='q‘
db.users.update({b:'q'},{$set:{a:1}},false,true)
Индексы
Обычные B-Tree индексы
• На одно поле
• Составной
• На поля вложенных объектов
• Sparse индекс
• На массив
• Геоиндекс
Что не умеет?
Не умеет Решение
Джоины “Embedding” – внедренные объекты
Транзакции Атомарный операции $set, $inc,$push,$pull
Базы более 2ГБ под Win32 x64
Репликация
Перевыборы
Перевыборы
Шардинг
Про скорость
Сравнивать NoSQL разных классов – Ошибка!
Update/Insert в 3-5 раз быстрее чем MsSQLдо 10 раз быстрее чем MySQL
Select в 1,5 -2 раза быстрее чем MsSQLдо 2х раз быстрее чем MySQL
до 10 раз быстрее (MS и My) при чтении без индексов
Вывод: все зависит от задач и контекста!
Личные впечатления
Легкое программирование
Безпроблемная эксплуатация
Отличная производительность
Головной боли на несколько порядков
меньше, чем с MSSQL.
Что это? Как готовить? С чем едят?
Тимофей Миронов
mironov@timeliner.ru
bug0r
Recommended