164
Защо ? Стефан Кънев http://skanev.com / @skanev OpenFest 21 Ноември 2010 София Monday, November 22, 2010

Защо MongoDB?

Embed Size (px)

Citation preview

Page 1: Защо MongoDB?

Защо?

Стефан Къневhttp://skanev.com/@skanev

OpenFest21 Ноември 2010

София

Monday, November 22, 2010

Page 2: Защо MongoDB?

Аз съм Стефан,приятно ми е.

Monday, November 22, 2010

Page 3: Защо MongoDB?

програмистMonday, November 22, 2010

Page 4: Защо MongoDB?

Monday, November 22, 2010

Page 5: Защо MongoDB?

Monday, November 22, 2010

Page 6: Защо MongoDB?

Monday, November 22, 2010

Page 7: Защо MongoDB?

http://skanev.com/

Monday, November 22, 2010

Page 8: Защо MongoDB?

особен стил

Monday, November 22, 2010

Page 9: Защо MongoDB?

говоря бързо

Monday, November 22, 2010

Page 10: Защо MongoDB?

ръкомахамMonday, November 22, 2010

Page 11: Защо MongoDB?

“п.с.  това  момче  отдясно  рапър  ли  е  ;)  ?”

OpenFest 2009

Monday, November 22, 2010

Page 12: Защо MongoDB?

много слайдове

Monday, November 22, 2010

Page 13: Защо MongoDB?

210Monday, November 22, 2010

Page 14: Защо MongoDB?

нещо ново!

Monday, November 22, 2010

Page 15: Защо MongoDB?

Мариян

Monday, November 22, 2010

Page 16: Защо MongoDB?

Аз ползвамWindows 7

OpenFest 2009

Monday, November 22, 2010

Page 17: Защо MongoDB?

Аз ползвамVisual Source Safe

P2P 2010

Monday, November 22, 2010

Page 18: Защо MongoDB?

коварно: тази година той говори последен

Monday, November 22, 2010

Page 19: Защо MongoDB?

“Класически” МариянMonday, November 22, 2010

Page 20: Защо MongoDB?

ала Salvador DaliMonday, November 22, 2010

Page 21: Защо MongoDB?

Friendly Mutton Chops

Monday, November 22, 2010

Page 22: Защо MongoDB?

The Real StuffMonday, November 22, 2010

Page 23: Защо MongoDB?

Monday, November 22, 2010

Page 24: Защо MongoDB?

Имате въпроси?

Monday, November 22, 2010

Page 25: Защо MongoDB?

1. Проблеми на релационните бази от данни

2. MongoDB отдалеч

3. Работа с MongoDB

4. Предимства и недостатъци

5. Някои приложения

6. MongoDB в живия живот

Monday, November 22, 2010

Page 26: Защо MongoDB?

DisclaimerРелационните бази работят, доказани са и имат ред успешни приложения. Ако се захващате с алтернативни сте в

експериментална територия и трябва да сте готови да се оправяте сами.

Monday, November 22, 2010

Page 27: Защо MongoDB?

1. Проблеми на релационните бази от данни

2. MongoDB отдалеч

3. Работа с MongoDB

4. Предимства и недостатъци

5. Някои приложения

6. MongoDB в живия живот

Monday, November 22, 2010

Page 28: Защо MongoDB?

Релационните  бази  са  сложни!DDL & DML

нормализация

индексиinner/outer joinтранзакции/изолация

6NF

денормализация

Monday, November 22, 2010

Page 29: Защо MongoDB?

скубете си косата...

...или сте си оскубали косата

Monday, November 22, 2010

Page 30: Защо MongoDB?

R MO

Monday, November 22, 2010

Page 31: Защо MongoDB?

bject-to- elational apperR MO

Monday, November 22, 2010

Page 32: Защо MongoDB?

клас ⇔ таблица

Monday, November 22, 2010

Page 33: Защо MongoDB?

не съвсем съвместими

Monday, November 22, 2010

Page 34: Защо MongoDB?

ON DELETE CASCASE vs. callback в кода

Monday, November 22, 2010

Page 35: Защо MongoDB?

несъвместимост между типовете(например дати)

Monday, November 22, 2010

Page 36: Защо MongoDB?

в кода vs. в базата

Monday, November 22, 2010

Page 37: Защо MongoDB?

OOP RDBMS

ORM

В “думите” на господин Вен...

...само общата част от двата свята

Monday, November 22, 2010

Page 38: Защо MongoDB?

лош програмен модел

Monday, November 22, 2010

Page 39: Защо MongoDB?

Edgar Codd

Monday, November 22, 2010

Page 40: Защо MongoDB?

Релационен модел

Monday, November 22, 2010

Page 41: Защо MongoDB?

Релационен модел

Monday, November 22, 2010

Page 42: Защо MongoDB?

теория

Monday, November 22, 2010

Page 43: Защо MongoDB?

теория  ≠  практика

Monday, November 22, 2010

Page 44: Защо MongoDB?

на  теория:

Поставяте  данните  в  релации,пишете  заявка  и  систематаавтоматично  намира  как  да  яизпълни  оптимално.

Monday, November 22, 2010

Page 45: Защо MongoDB?

на  практика:

Уф,  ‘що  не  ползва  тоя  иднекс?Може  би  трябва  да  денормализирам  тази  таблица...  

Monday, November 22, 2010

Page 46: Защо MongoDB?

Monday, November 22, 2010

Page 47: Защо MongoDB?

SQL  е  ужасен

Monday, November 22, 2010

Page 48: Защо MongoDB?

Don Chamberlinговори за SQL:

Monday, November 22, 2010

Page 49: Защо MongoDB?

“Ray  and  I  thought  that  we  were  developing  a  language  that  would  be  used  mainly  by  ‘casual  users’...”

Monday, November 22, 2010

Page 50: Защо MongoDB?

“...we  were  trying  to  make  databases  accessible  to  a  new  class  of  users  who  were  not  trained  computer  scientists...”

Monday, November 22, 2010

Page 51: Защо MongoDB?

“We  expected  to  see  SQL  used  directly  by  financial  analysts,  urban  planners,  and  other  professionals  who  needed  access  to  data  but  did  not  want  to  write  computer  programs”

Monday, November 22, 2010

Page 52: Защо MongoDB?

“In  fact,  over  the  years  a  great  deal  of  SQL  code  has  been  generated  by  automatic  tools,  a  development  that  was  not  foreseen  in  the  early  days.”

Monday, November 22, 2010

Page 53: Защо MongoDB?

Monday, November 22, 2010

Page 54: Защо MongoDB?

Monday, November 22, 2010

Page 55: Защо MongoDB?

концептуални  проблеми

Monday, November 22, 2010

Page 56: Защо MongoDB?

не  твърдя:

“Релационните  бази  са  неизползвамеви  за  повечето  приложения”

Monday, November 22, 2010

Page 57: Защо MongoDB?

твърдя:

“Релационните  бази  са  скъпи  за  повечето  приложения”

Monday, November 22, 2010

Page 58: Защо MongoDB?

Monday, November 22, 2010

Page 59: Защо MongoDB?

NoSQL

Monday, November 22, 2010

Page 60: Защо MongoDB?

Scientists have discovered that 83% of all projects are better

of with MongoDB. True story.

Barney Stinson, ProgrammerMonday, November 22, 2010

Page 61: Защо MongoDB?

1. Проблеми на релационните бази от данни

2. MongoDB отдалеч

3. Работа с MongoDB

4. Предимства и недостатъци

5. Някои приложения

6. MongoDB в живия живот

Monday, November 22, 2010

Page 62: Защо MongoDB?

Monday, November 22, 2010

Page 63: Защо MongoDB?

документно-­‐ориентирана

Monday, November 22, 2010

Page 64: Защо MongoDB?

scalability,  performances,tons  of  features

Monday, November 22, 2010

Page 65: Защо MongoDB?

OMG,  индекси!

(ако си мислите, че това не е проблем, пробвайте CouchDB)

Monday, November 22, 2010

Page 66: Защо MongoDB?

производителност

функционалност

• memcached

• key/value

• RDBMS

• MongoDB

(според Mike Dirolf, един от авторите)Monday, November 22, 2010

Page 67: Защо MongoDB?

“MyISAM  on  meth”

Monday, November 22, 2010

Page 68: Защо MongoDB?

бази  ›  колекции  ›  документи

Monday, November 22, 2010

Page 69: Защо MongoDB?

колекции  ≈  таблици

Monday, November 22, 2010

Page 70: Защо MongoDB?

документите  са  JSON*

* с уговоркиMonday, November 22, 2010

Page 71: Защо MongoDB?

{ "title": "Haskell rocks", "text": "Today I played with...", "tags": ["programming", "haskell"], "author": { "name": "Stefan Kanev", "email": "[email protected]" } "views": 42}

Блог пост

Monday, November 22, 2010

Page 72: Защо MongoDB?

{ "title": "Haskell rocks", "body": "Today I played with...", "notes": "Monads in Go?"}

{ "title": "Io is awesome", "tags": ['io', 'awesome'], "notes": 5}

Гъвкава схема

различни полета

различни типове

Monday, November 22, 2010

Page 73: Защо MongoDB?

Типове

• нищо: null• булева стойност: true, false• 32bit/64bit цели числа: 42• 64bit float: 3.1415• низове: “chunky bacon”• дати: new Date()• регулярен израз: /foobar/i• код: function(x) { return x * x; }• масиви: [2, 3, 5, 7, 11]• обекти/документи: {foo: 1, bar: 2}

Monday, November 22, 2010

Page 74: Защо MongoDB?

документите  всъщонст  са  BSON*

* бърз двоичен формат, MongoDB измислицаMonday, November 22, 2010

Page 75: Защо MongoDB?

JavaScript  конзола

Monday, November 22, 2010

Page 76: Защо MongoDB?

репликация

Monday, November 22, 2010

Page 77: Защо MongoDB?

master-­‐slave

Monday, November 22, 2010

Page 78: Защо MongoDB?

replica  set

Monday, November 22, 2010

Page 79: Защо MongoDB?

auto-­‐sharding

Monday, November 22, 2010

Page 80: Защо MongoDB?

1. Проблеми на релационните бази от данни

2. MongoDB отдалеч

3. Работа с MongoDB

4. Предимства и недостатъци

5. Някои приложения

6. MongoDB в живия живот

Monday, November 22, 2010

Page 81: Защо MongoDB?

{ "title": "Haskell rocks", "author": "skanev", "text": "Today I played with...", "tags": ["programming", "haskell"], "views": 42}

Примерен документ

Monday, November 22, 2010

Page 82: Защо MongoDB?

> db.posts.insert({ "title": "Haskell rocks", "author": "skanev", "text": "Today I played with...", "tags": ["programming", "haskell"], "views": 42})

Добавянеглобална променлива в конзолата за текущата база

име на колекциятакоманда

Monday, November 22, 2010

Page 83: Защо MongoDB?

> db.posts.find(){ "_id" : ObjectId("4ce653278f4f936035707875"), "title" : "Haskell rocks", "author" : "skanev", "text" : "Today I played with...", "tags" : [ "programming", "haskell" ], "views" : 42}

...и резултатът

Monday, November 22, 2010

Page 84: Защо MongoDB?

_id

• специален ключ,

• всеки документ го има

• уникален е в рамките на колекция

• какъвто и да е тип

Monday, November 22, 2010

Page 85: Защо MongoDB?

> db.posts.update({title: "Haskell rocks"}, { title: "Haskell is cool", author: "skanev", body: "Today I played with..."})

Обновяване на документ

Monday, November 22, 2010

Page 86: Защо MongoDB?

> db.posts.findOne(){ "_id" : ObjectId("4ce653278f4f936035707875"), "title" : "Haskell is cool", "author" : "skanev", "body" : "Today I played with..."}

След записа

tags и views ги няма

Monday, November 22, 2010

Page 87: Защо MongoDB?

> db.posts.update({_id:"4ce653278f4f936035707875"},{ title: "Haskell is cool", author: "skanev", body: "Today I played with..."})

Обикновено ползвате _id

Monday, November 22, 2010

Page 88: Защо MongoDB?

db.posts.update( {'title': 'Haskell rocks'}, {'$set': {'title': 'Haskell is weird'}})

Промяна на единично поле

Monday, November 22, 2010

Page 89: Защо MongoDB?

Модификатори ($set)

• Не са имена на полета

• Значат нещо специално за Mongo

• Започват с $

• Prefix-а може да се промени при клиента

Monday, November 22, 2010

Page 90: Защо MongoDB?

инкрементиране на брояч

Monday, November 22, 2010

Page 91: Защо MongoDB?

var views = db.posts.findOne({title: "Haskell rocks"}).views

db.posts.update( {'title': 'Haskell rocks'}, {'$set': {'views': views + 1}})

Може така...

...но има проблеми

Monday, November 22, 2010

Page 92: Защо MongoDB?

...но по-добрият вариант е

db.posts.update( {'title': 'Haskell rocks'}, {'$inc': {'views': 1}})

Monday, November 22, 2010

Page 93: Защо MongoDB?

работа с масиви

Monday, November 22, 2010

Page 94: Защо MongoDB?

{ "title": "Haskell rocks", "tags": ["weird", "haskell"],}

Документ

Monday, November 22, 2010

Page 95: Защо MongoDB?

Добавяне на таг

db.posts.update( {'title': 'Haskell rocks'}, {'$push': {'tags': 'fun'}})

> db.posts.findOne(){ "_id" : ObjectId("4ce7acf86fe4256367d98353"), "tags" : ["weird", "haskell", "fun"], "title" : "Haskell rocks"}

Monday, November 22, 2010

Page 96: Защо MongoDB?

Или пък

db.posts.update( {'title': 'Haskell rocks'}, {'$addToSet': {'tags': 'weird'}})

Monday, November 22, 2010

Page 97: Защо MongoDB?

вложени документи

Monday, November 22, 2010

Page 98: Защо MongoDB?

{ "title": "Haskell rocks", "author": { "name": "Stefan Kanev", "email": "[email protected]" }}

Документът...

Monday, November 22, 2010

Page 99: Защо MongoDB?

...и промяната

db.posts.update( {"author.name": "Stefan Kanev"}, {"$set": {"author.email": "[email protected]"}})

Monday, November 22, 2010

Page 100: Защо MongoDB?

заявки за търсене

Monday, November 22, 2010

Page 101: Защо MongoDB?

db.posts.find({"author": "skanev"})

Съвпадение по поле

Monday, November 22, 2010

Page 102: Защо MongoDB?

Само определени полета

db.posts.find( {"author": "skanev"}, {"title": 1, "tags": 1})

Monday, November 22, 2010

Page 103: Защо MongoDB?

Сравнения

db.posts.find({"views": {"$gt": 1000}})

db.posts.find({"views": {"$gt": 1000, "$lt": 2000}})

Monday, November 22, 2010

Page 104: Защо MongoDB?

$in

db.posts.find({ "author": {"$in": ['skanev', 'stefan', 'kanev']}})

Monday, November 22, 2010

Page 105: Защо MongoDB?

Дизюнкция(или на прост български: OR)

db.posts.find({ "$or": [ {"author": "skanev"}, {"views": {"$gte": 1000}} ]})

Monday, November 22, 2010

Page 106: Защо MongoDB?

Търсене в масиви

db.posts.find({"tags": "haskell"})

db.posts.find({ "tags": {"$all": ["programming", "haskell"]}})

db.posts.find({"tags": {"$size": 2}})

Monday, November 22, 2010

Page 107: Защо MongoDB?

Вложени документи

db.people.find({ "name.first": "Stefan", "name.last": "Kanev"})

Monday, November 22, 2010

Page 108: Защо MongoDB?

има и още...

$gt $lt $gte $lte $ne$all $in $nin $not $mod$size $exists $type $elemMatch

Monday, November 22, 2010

Page 109: Защо MongoDB?

$where

db.people.find({ "$where": function() { return this.age % 2 == 0; }})

Monday, November 22, 2010

Page 110: Защо MongoDB?

MapReduce

Monday, November 22, 2010

Page 111: Защо MongoDB?

GridFS

Monday, November 22, 2010

Page 112: Защо MongoDB?

server-­‐side  javascript

Monday, November 22, 2010

Page 113: Защо MongoDB?

1. Проблеми на релационните бази от данни

2. MongoDB отдалеч

3. Работа с MongoDB

4. Предимства и недостатъци

5. Някои приложения

6. MongoDB в живия живот

Monday, November 22, 2010

Page 114: Защо MongoDB?

Corey Haines

Monday, November 22, 2010

Page 115: Защо MongoDB?

#positivember

Monday, November 22, 2010

Page 116: Защо MongoDB?

Хубавото в MongoDBMonday, November 22, 2010

Page 117: Защо MongoDB?

бързо

Monday, November 22, 2010

Page 118: Защо MongoDB?

horizontal  scalability

Monday, November 22, 2010

Page 119: Защо MongoDB?

feature-­‐rich

Monday, November 22, 2010

Page 120: Защо MongoDB?

Лошото в MongoDBMonday, November 22, 2010

Page 121: Защо MongoDB?

администрация  ;(

Monday, November 22, 2010

Page 122: Защо MongoDB?

memory  mapped-­‐files

Monday, November 22, 2010

Page 123: Защо MongoDB?

особености  при  back-­‐up

Monday, November 22, 2010

Page 124: Защо MongoDB?

no  single-­‐server  durability

Monday, November 22, 2010

Page 125: Защо MongoDB?

много  инстанции  на  mongo

Monday, November 22, 2010

Page 126: Защо MongoDB?

сега  е  #positivember,  авсичко  това  е  много  негативно;

затова  мислете  така:

Monday, November 22, 2010

Page 127: Защо MongoDB?

улеснява  програмирането  за  сметка  на  системната  

администрация

Monday, November 22, 2010

Page 128: Защо MongoDB?

балансира  сложността  между  програмистите  и  админите

Monday, November 22, 2010

Page 129: Защо MongoDB?

намира  работа  на  админите

Monday, November 22, 2010

Page 130: Защо MongoDB?

кара  администраторите  да  се  чустват  полезни

Monday, November 22, 2010

Page 131: Защо MongoDB?

мизантропи и социопати

пълноценни членове на обществото

Системни администратори

принос,самочувствие

Monday, November 22, 2010

Page 132: Защо MongoDB?

MongoDB  е  полезно  за  админите

Monday, November 22, 2010

Page 133: Защо MongoDB?

Monday, November 22, 2010

Page 134: Защо MongoDB?

...но  сериозно...

Monday, November 22, 2010

Page 135: Защо MongoDB?

1. Проблеми на релационните бази от данни

2. MongoDB отдалеч

3. Работа с MongoDB

4. Предимства и недостатъци

5. Някои приложения

6. MongoDB в живия живот

Monday, November 22, 2010

Page 136: Защо MongoDB?

три проблема, които не са директно с производителност

Monday, November 22, 2010

Page 137: Защо MongoDB?

1

Monday, November 22, 2010

Page 138: Защо MongoDB?

MyISAM120  000  000  записа200  GB  таблица

Monday, November 22, 2010

Page 139: Защо MongoDB?

...искам  да  добавя  нова  колона

Monday, November 22, 2010

Page 140: Защо MongoDB?

ALTER TABLE articlesоколо  20  часа

Monday, November 22, 2010

Page 141: Защо MongoDB?

спъва  развитието  на  продукта

прави  deploy-­‐а  ръчен

никой  не  иска  да  смъкне  сайта

Monday, November 22, 2010

Page 142: Защо MongoDB?

без заключване на таблици

Monday, November 22, 2010

Page 143: Защо MongoDB?

1. променяме кода да работи с двата варианта

2. времеемка миграция, която не заключва нищо

3. премахваме поддръжката за стария вариант

Рецепта

Monday, November 22, 2010

Page 144: Защо MongoDB?

2

Monday, November 22, 2010

Page 145: Защо MongoDB?

импортираме  от  legacy  база......от  таблица  с  188  колони

Monday, November 22, 2010

Page 146: Защо MongoDB?

Monday, November 22, 2010

Page 147: Защо MongoDB?

orgnr skatter_AB soliditet_AB sumomstillg_KONC roresfdisp_KONC antalanst_KONC_Xlan aretsres_AB kaslikv_AB sparrkonto_KONC omsattfor_KONC oms_KONC_Xkommun likvmed_AB kasflfror_AB maskoinv_KONC forsumtillg_KONC resfbok_KONC_Xbolform kundford_AB avkegkap_AB sumanltillg_KONC regdatum_AB aretsres_KONC_Xftgnamn varulager_AB avktotkap_AB sumtillg_KONC styrelse_AB sumtillg_KONC_Xcopers ovromstillg_AB lonekanst_AB levskuld_KONC histnamn_AB aktiekap_KONC_Xutdadress sumomstillg_AB roresfdisp_AB sumkortfsk_KONC firmteck_AB sumegkap_KONC_Xpostnr sparrkonto_AB omsattfor_AB sumlangfsk_KONC bolord_AB netrespoms_KONC_Xpostort maskoinv_AB forsumtillg_AB obesres_KONC regdatum_HB vinstmarg_KONC_Xriktnr sumanltillg_AB bokslut_start_KONC aktiekap_KONC styrelse_HB omsanst_KONC_Xabbnr sumtillg_AB bokslut_slut_KONC ovrbundkap_KONC histnamn_HB soliditet_KONC_Xverkstat levskuld_AB aktieutd_KONC obunegkap_KONC firmteck_HB kaslikv_KONC_Xaktivstat sumkortfsk_AB antalanst_KONC sumegkap_KONC bolord_HB avktotkap_KONC_Xsni sumlangfsk_AB lonoers_KONC sumskegkap_KONC status_konk_HB lonekanst_KONC_Xdkm_AB obesres_AB oms_KONC goodwill_KONC status_likv_HB omsattfor_KONC_Xbokslut_start_AB aktiekap_AB resfavskr_KONC panter_KONC sekv_HB bolstatusbokslut_slut_AB ovrbundkap_AB avskr_KONC ansvar_KONC antalanst_AB_X styrelse_Xaktieutd_AB obunegkap_AB reseavskr_KONC fastigheter_KONC oms_AB_X fbokstavantalanst_AB sumegkap_AB finint_KONC revanm_KONC resfbok_AB_X bolord_Xlonoers_AB sumskegkap_AB finkostn_KONC ntstart_KONC aretsres_AB_X histnamn_Xoms_AB goodwill_AB resefin_KONC ntslut_KONC sumtillg_AB_X regdatum_Xresfavskr_AB panter_AB extordint_KONC resfavspoms_KONC aktiekap_AB_X koncern_Xavskr_AB ansvar_AB extordkost_KONC netrespoms_KONC sumegkap_AB_X publikt_Xreseavskr_AB fastigheter_AB resfbok_KONC vinstmarg_KONC netrespoms_AB_X kommun_Xfinint_AB revanm_AB boksldisp_KONC omsanst_KONC vinstmarg_AB_X senaste_ABfinkostn_AB ntstart_AB skatter_KONC soliditet_KONC omsanst_AB_X senaste_KONCresefin_AB ntslut_AB aretsres_KONC kaslikv_KONC soliditet_AB_X skodextordint_AB resfavspoms_AB likvmed_KONC kasflfror_KONC kaslikv_AB_X tkodextordkost_AB netrespoms_AB kundford_KONC avkegkap_KONC avktotkap_AB_X datumresfbok_AB vinstmarg_AB varulager_KONC avktotkap_KONC lonekanst_AB_X forgnrboksldisp_AB omsanst_AB ovromstillg_KONC lonekanst_KONC omsattfor_AB_X antal_cfarantal_ort ort

188 колони

Monday, November 22, 2010

Page 148: Защо MongoDB?

1 таблица, 1 ред⇓

7 таблици, 30 реда

Monday, November 22, 2010

Page 149: Защо MongoDB?

1.  показваме  на  една  страница

2.  даваме  на  SOLR  за  иднексация

Monday, November 22, 2010

Page 150: Защо MongoDB?

7 класа + 7 таблици = bloat

Monday, November 22, 2010

Page 151: Защо MongoDB?

по-­‐простопо-­‐бързо

Monday, November 22, 2010

Page 152: Защо MongoDB?

3

Monday, November 22, 2010

Page 153: Защо MongoDB?

клиент  с  кофти  изисквания

Monday, November 22, 2010

Page 154: Защо MongoDB?

“Ще  правим  магазин.  Искам  да  мога  да  добавям  нови  типове  

продукти  и  да  променям  атрибутите  на  съществуващите,  както  и  да  има  търсене  по  тях”

Monday, November 22, 2010

Page 155: Защо MongoDB?

entity-­‐attribute-­‐valueid key value1 name hoodie1 color blue2 name shirt

Monday, November 22, 2010

Page 156: Защо MongoDB?

трудни  заявкигубите  типовеняма  индекси

бавно

Monday, November 22, 2010

Page 157: Защо MongoDB?

сериализиран  обектjson,  yaml,  pickle

Monday, November 22, 2010

Page 158: Защо MongoDB?

никакви  заявкиникакви  индексивъншен  софтуер

Monday, November 22, 2010

Page 159: Защо MongoDB?

Monday, November 22, 2010

Page 160: Защо MongoDB?

1. Проблеми на релационните бази от данни

2. MongoDB отдалеч

3. Работа с MongoDB

4. Предимства и недостатъци

5. Някои приложения

6. MongoDB в живия живот

Monday, November 22, 2010

Page 161: Защо MongoDB?

Monday, November 22, 2010

Page 162: Защо MongoDB?

Monday, November 22, 2010

Page 163: Защо MongoDB?

Monday, November 22, 2010

Page 164: Защо MongoDB?

Въпроси

Monday, November 22, 2010