SlideShare a Scribd company logo
Антон Фроловanton.frolov@dctua.comSkype: a.f.r.o.l.o.v.
NoSQL (not only)!?!?Первое появление (BigTable, Cassandra…)ПопуляризацияКонференции, семинары…
MongoDB первые впечатления
Почему MongoDB?Масштабируемость (data sharding)Schema-less данныеПроизводительностьБыстрый поиск по индексуMapReduceЗапросы в стиле JSON
Memcached vs MongoDBМеханизм хранения данныхПерезагрузка memcachedСброс кешаРазмер объекта 4 Mb > 1 Mbmain_posts_keypopular_posts_keyПосты на главнойПопулярные постыПост (на блоге)rss_posts_keyПосты в RSS
Репликация данныхMaster-slave replicationReplica set
Consistent hashingКонсистентные хэшиServer 0Server 1Server 2Server 33Hash функция: значение % 41,2,3,4,5,6,7…10,11,12,13Набор целых чисел 0 – 2^32 закручиваем в осьКаждому серверу сопоставляется целое число на кольцеКлюч хэшируется в число в том же диапазоне
Архитектура масштабирования данных
Back upFsync, Write Lock and BackupShutdown and BackupExports (mongodump.exe)Slave Backup
Формат хранения данных – документно-ориентированная база данныхБаза данныхКоллекцияДокументСсылка на другой документIdПростыя поляМассивыДругие объектыB
Вставка данныхНа входеvar person = {	name: “Anton”,	surname: “Frolov”,	isUneta: 1,	hands: [“left”, “right”],	mobile: { name: “nokia”, color: “red”, weight: 100 }}На выходеvar person = {_id: ObjectId("4caf6f41b12e0000000007eb"),	name: “Anton”,	surname: “Frolov”,	isUneta: 1,	hands: [“left”, “right”],	mobile: { name: “nokia”, color: “red”, weight: 100 }}ObjectId – уникальный идентификатор:1). Если не указывать явно, то генерируется значение размером 12 байт2). Если явно указать поле _id,то его значение сохранится
УстановкаУстановить можно двумя способами:Windows serviceЗапуск exe файла – работающий процессСтроки соединения: mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/database].net clientMongod.exehttp://localhost:28017Mongo.exeДр. приложения
Первое приложения для MongoDBДрайвера для C# .net:  simple-mongodb, csharp-mongodb, NoRM
Индексы в MongoDBИндексы реализованы с помощью B-treeВсегда создается индекс для _idВиды индексов:Простые индексы
Индексы для встроенных документов(embedded)
Документы в качестве индексов
Покрывающий индексПолнотекстовый индексMultikeys feature(индексирует все значения в массиве)Пример для поиска по тегам:Пример поиска по тексту:Вывод: реализации полнотекстового индекса, которая могла бы применяться в качестве готового решения, нет.
Снова индексыУникальные индексы:Создание индекса блокирует работу базы данных, если не указать доп. параметрbackground:Удаление индексов:	Удаление определенных индексов:
КомандыКоманды - специальные операции по работе с базой данных. Скидывание файлов на диск(flush)
Профилирование системы
http://localhost:27017
mongostat.exeinserts/s    - # количество вставок в секундуquery/s      - # количество запросов в секундуupdate/s     - # количество обновлений в секундуdelete/s     - # количество удаленийcommand/s    - # количество команд в секундуflushes/s    - #  количество скидываний файлов в секундуmapped       - данных, замапленых в память
db.serverStatus()globalLock – время блокированияmem – количество занятой памяти в мегабайтахconnections – кол-во соединенийbackgroundFlushing – информация о скидывании файлов на дискopcounters – информация об операциях
MapReduceMap – обработка информации и формирование пары ключ-значениеReduce – собирает промежуточные значения, обрабатывает и выводит результат
MongoDB первые впечатления

More Related Content

PPTX
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
PPTX
MongoDB. Как готовить, с чем едят?
PPTX
MongoDB в продакшен - миф или реальность?
PPT
MongoDB basics in Russian
PPTX
No sql.mongodb scaling
ODP
Кратко о MongoDB
PDF
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
PPTX
NoSQL - взрыв возможностей
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Как готовить, с чем едят?
MongoDB в продакшен - миф или реальность?
MongoDB basics in Russian
No sql.mongodb scaling
Кратко о MongoDB
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
NoSQL - взрыв возможностей

What's hot (20)

PDF
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
PPTX
Анализируем данные с Clickhouse
PPTX
ClickHouse как решение для бизнес аналитики. Дмитрий Кузьмин
PPTX
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)
PDF
Обзор перспективных баз данных для highload / Юрий Насретдинов
PDF
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)
PPTX
Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)
PDF
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
PPTX
Поиск наизнанку
PDF
NoSQL внутри SQL: приземленные вопросы практического применения / Дмитрий До...
PPT
Алексей Чумаков. Apache Cassandra на реальном проекте
PDF
Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...
PDF
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
PPTX
Mysql vs postgresql
ODP
ClickHouse
PDF
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
PPTX
Cassandra: быстрая запись данных в высоконагруженных системах
PPTX
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
PPTX
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
PPTX
Введение в Apache Cassandra
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
Анализируем данные с Clickhouse
ClickHouse как решение для бизнес аналитики. Дмитрий Кузьмин
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)
Обзор перспективных баз данных для highload / Юрий Насретдинов
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)
Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
Поиск наизнанку
NoSQL внутри SQL: приземленные вопросы практического применения / Дмитрий До...
Алексей Чумаков. Apache Cassandra на реальном проекте
Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
Mysql vs postgresql
ClickHouse
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
Cassandra: быстрая запись данных в высоконагруженных системах
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
Введение в Apache Cassandra
Ad

Similar to MongoDB первые впечатления (20)

PDF
Nosql and Mongodb
PDF
Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...
PPT
Introduction to MongoDB
PPTX
Redis in live
PPT
Lan-Crawler Bachlor RU
PPTX
IOP202 Redis in Azure
PPT
Быстрое масштабирование систем
PDF
Зачем нужны постпроцессоры при живых препроцессорах — Алексей Иванов, JetStyle
PPT
Использование Sedna в WEB
PDF
Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...
PPT
XML Native Database на примере SednaXML
PDF
SphinxSearch Meetup - Tips&tricks
PDF
Administrarea DSpace
PPT
Smirnov Memcached Highload 2008
PPT
Smirnov Memcached High Load 2008
PDF
Л9: Взаимодействие веб-приложений
PPTX
Web осень 2013 лекция 9
PPT
“КП” в интернете (Александр Ромашин, Вячеслав Малютин)
PDF
20160330 Приложение с использованием данных с сервера (EMS)
PPT
Rybak Big Projects New
Nosql and Mongodb
Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...
Introduction to MongoDB
Redis in live
Lan-Crawler Bachlor RU
IOP202 Redis in Azure
Быстрое масштабирование систем
Зачем нужны постпроцессоры при живых препроцессорах — Алексей Иванов, JetStyle
Использование Sedna в WEB
Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...
XML Native Database на примере SednaXML
SphinxSearch Meetup - Tips&tricks
Administrarea DSpace
Smirnov Memcached Highload 2008
Smirnov Memcached High Load 2008
Л9: Взаимодействие веб-приложений
Web осень 2013 лекция 9
“КП” в интернете (Александр Ромашин, Вячеслав Малютин)
20160330 Приложение с использованием данных с сервера (EMS)
Rybak Big Projects New
Ad

MongoDB первые впечатления