MongoDB. Как готовить, с чем едят?

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