Successfully reported this slideshow.
Your SlideShare is downloading. ×

Martin Strýček - Ako začať s MongoDB

More Related Content

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Martin Strýček - Ako začať s MongoDB

  1. 1. { author:"Martin Strýček", twitter:"@martin_strycek", about:"Ako začať s MongoDB" }
  2. 2. NoSQL a RDBMS pohľad na svet.
  3. 3. “640kB of memory should be enough for anybody.” -Bill Gates (1981)
  4. 4. byte Kilobyte 1,024 Megabyte 1,048,576 “640K of memory should be Gigabyte 1,073,741,824 enough for anybody.” Terabyte 1,099,511,627,776 Petabyte 1,125,899,906,842,624 Exabyte 1,152,921,504,606,846,976 Zettabyte 1,180,591,620,717,411,303,425
  5. 5. RDBMS NoSQL  Relácie  Vnorené objekty  ACID (atomicity,  Rýchlosť consistency, isolation, durability) Základné rozdiely
  6. 6. Čo vlastne je mongoDB a ako funguje?
  7. 7. MongoDB od slova "humongous“ je šk{lovateľn{, výkonná, open source NoSQL databáza. strycek@webserverba:~$ mongo 192.168.122.20:27017
  8. 8. strycek@webserverba:~$ mongo 192.168.122.20:27017 MongoDB shell version: 1.4.4  MongoDB je databáza url: 192.168.122.20:27017 connecting to: 192.168.122.20:27017/test type "help" for help > > use harvester
  9. 9. strycek@webserverba:~$ mongo 192.168.122.20:27017 MongoDB shell version: 1.4.4  MongoDB je databáza url: 192.168.122.20:27017  obsahujúca kolekcie (tabuľka) connecting to: 192.168.122.20:27017/test type "help" for help > use harvester switched to db harvester > db.pageviews
  10. 10.  MongoDB je databáza  obsahujúca kolekcie (tabuľka)  kolekcie obsahujú dokumenty (riadky) > db.pageviews.insert({})
  11. 11.  MongoDB je databáza  obsahujúca kolekcie (tabuľka)  kolekcie obsahujú dokumenty (riadky)  dokumenty obsahujú množinu polí (stĺpce) > db.pageviews.insert({url : "http://webelement.sk" })
  12. 12. Dáta, veľa dát...
  13. 13.  BSON = binary-encoded serialization of JSON-like documents
  14. 14.  BSON = binary-encoded serialization of JSON-like documents  maxim{lna veľkosť jedného dokumentu je 16MB  pre väčšie d{ta máme GridFS  Súbory  Kúsky
  15. 15. { "_id" : ObjectId("4fcfd8db962e3f275a2847d6"), "url" : "http://webelement.sk", "visitor" : 1 } { "_id" : ObjectId("4fcfd8db962e3f275a2847d7"), "date" : "Thu Jun 07 2012 00:00:00 GMT+0200 (CET)", "url" : "http://webelement.sk", "visitor" : 225, "logged-in" : 55225 } db.pageviews.find();
  16. 16. { "_id" : ObjectId("4fcfd8db962e3f275a2847d6"), "url" : "http://webelement.sk", } { "_id" : ObjectId("4fcfd8db962e3f275a2847d7"), "url" : "http://webelement.sk", } db.pageviews.find( {url:”http://webelement.sk”}, {url:1} );
  17. 17. Kedy je vhodný čas prejsť na MongoDB?
  18. 18. { { "_id" : ..., "_id" : ..., "url" : ..., "url" : ..., "visitors" : [ "visitors" : { { "pijani" : [ "type" : "pijani", "pocet" : 20 "pocet" : 20 ], }, "nepijani" : [ { "type" : "nepijani" "pocet" : 70 "pocet" : 48 ] }, } ], } } db.pageviews.find({ "visitors.type" : { "$gt" : 19 } });
  19. 19. Šk{lovateľnosť a výkon Funkcionalita
  20. 20.  Ak potrebujete datab{zu s veľa d{tami ale nechcete prísť o výkon.  Ak si chcete sami definovať indexy.  Ak potrebujete ľahko nastaviteľnú replik{ciu.  Ak by ste miesto neho zvolili MySQL alebo PostgreSQL
  21. 21. Dačo z praxe.
  22. 22. { "_id" : ..., "url" : ..., "blog" : [ { "autor" : "ujovlado", "msg" : "začal som robiť v Piano Media" }, { "autor" : "rootpd", "msg" : " ja tam robím tiež" }, ], } Nebojte sa duplikovať dáta
  23. 23. { "_id" : ..., "url" : ..., "visits" : [ "hours" : [ [0,0,0,0……0], [0,0,0,0……0], … [0,0,0,0……0] ] ], } Nachystajte si miesto
  24. 24.  Podmienka A vráti 25 000 dokumentov  Podmienka B vráti 8 000 dokumentov  Podmienka C vráti 2 000 dokumentov Keď píšete dotazy rozmýšľajte

×