Mongo sunum

Preview:

DESCRIPTION

MongoDB Sunum - SOCIAPlus

Citation preview

MongoDB SunumTarık YILMAZ

MongoDB Sunum

MongoDB Nedir?

MongoDB Nedir?

MongoDB, Doküman tabanlı, C++ ile geliştirilen bir NoSQL veri tabanıdır. Bilinen

en yaygın NoSQL veri tabanıdır. Veriler BSON (Binary JSON) türünde

dokümanlarda tutulur. Tablo yoktur, tasarım yoktur, ilişki yoktur. [Schema-less]

MongoDB Nedir?

Yayılmasında etken olan durumlar;• hızlı R/W kapasitesi• dinamik veri yapısı• yatay ölçeklenebilme• aggregation ve map-reduce desteği• GridFS ile dosya ve metadata saklama• C++, PHP, Java, Python, JS, C#, Perl, ...

MongoDB Sunum

SQL ve NoSQL arasındaki farklar nelerdir ?

SQL vs NoSQL

SQL• Sabit tablo yapısı vardır• Kalıp veriler için uygundur• Genelde küçük ve orta çaplı veriler için tasarlanmıştır• Dağıtık yapı için pek uygun değildir

NoSQL• Şemasız dinamik tasarım vardır• Esnek veriler için uygundur• Orta ve büyük veriler için tasarlanmıştır• Dağıtık yapıya önem verilir

MongoDB Sunum

Hangi Durumlarda MongoDB Kullanılmalı?

MongoDB Kullanım Durumu

• Yüksek R/W trafiği• Karmaşık sorgu & analiz ihtiyacı• Kullanıcı IO, haber, duyuru verileri• Log verileri• Ürün, katalog verileri saklanması• Resim, video saklanması (GridFS)

MongoDB Sunum

Kimler Kullanıyor?

Kimler Kullanıyor?

MySQL vs MongoDB

MySQL MongoDB

Database DBTable CollectionRow DocumentColumn Field

Column Name => Value Key => Value

MongoDB Sunum

PHP ve MongoDB

PHP MongoDB

Örnek veri :{

“username” : “trK.54.Ylmz”, “password” : “a123ay346ADQ2asd”,“logged” : false,“activated” : true,“regdate” : new MongoDate(),“age” : 22,“sales” : {“electronic”: [“ipod”, “iphone”]},“comment” : [1,13,34,76,122]

}

PHP MongoDB

User collection :{

“username” : “tarik54”,“comment” : [1,13,34,76,122]

}

Comment collection:{

“id” : 34“content” : “Hello World!”

}

relation

PHP MongoDB

PHP Classes & Objects

• MongoClient• MongoDB• MongoCollection• MongoCursor• MongoGridFS• MongoGridFSCursor

PHP MongoDB

• $con = new MongoClient();• $con = new MongoClient(“mongodb://localhost:27017”);• $con = new MongoClient(“mongodb://user:pass@67.169.147/test”)• $con = new MongoClient(

“mongodb://localhost:12345,serv1.example.com/dbtest”);

• $coll = $con->selectCollection(“test”, “testColl”);• $coll = $con->selectDB(“test”)->selectCollection(“testColl”);

PHP MongoDB

• $data = $coll->findOne(array(“username” => “tarik54”));

• $datas = $coll->find(array(“logged” => true), array(“username” => true));

• $datas = $coll->find(array(“logged” => true, '$or' => [“age” => 22, “activated” => true]));

• $datas = $coll->find(array(“logged“ => true))->sort(array(“username” => -1))->skip(10)->limit(10);

PHP MongoDB

• $object = array(“username” => “tarik54”, “password” => “2312aa”,“logged” => false);

• $result = $coll->insert($object);

• $object2 = new UserObject();• $object2->setUsername(“tarik54”);• $object2->setPassword(“2312aa”);• $object2->setLogStatus(false);

• $result = $coll->insert($object);

PHP MongoDB

• $coll->update(array(“username” => “tarik54”), array('$set' => array('logged' => true)));

• $coll->update(array(“uid” => 12561211), array('$inc' => array(“age” => 1)));

• $coll->update(array(“uid” => 12561211),array(“$push” => array(“comment” => 152)));

• $coll->remove(array(“activated” => false));

MongoDB vs MySQL

MongoDB ve MySQL Benchmark

MySQL vs MongoDB

MySQL vs. MongoDBv5.5.35 v2.4.9Mysqli PHPMongo

PHP Client100000 adet veri

Insert + Get + IncrementSync requests

MySQL vs MongoDB

MySQL vs. MongoDB

Get : 23.7655899525352 8.2969670295715 Insert : 607.1592478752136 11.084399938583 Increm. : 439.2179238796234 19.202459096909

sonuçlar sn türündedir.

MongoDB Sunum

Sorular?