projelerinizi mongodb ile hızlandırın @phpkonf

56
Projenize Mongodb ile Hız Verin @htayyar [email protected]

Upload: hasan-tayyar-besik

Post on 29-Nov-2014

4.154 views

Category:

Technology


1 download

DESCRIPTION

Phpkonf. da Mongodb'den bahsettiğim sunum. phpkonf.org

TRANSCRIPT

Page 1: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Projenize Mongodb ile Hız Verin

@[email protected]

Page 2: Projelerinizi MongoDb ile Hızlandırın @phpkonf

MongoDb?

MongoDB C++ ile yazılmış

açık kaynak,

document-oriented

bir NoSQL veritabanıdır.

Page 3: Projelerinizi MongoDb ile Hızlandırın @phpkonf

NoSQL?

Page 4: Projelerinizi MongoDb ile Hızlandırın @phpkonf

NoSql?

Page 5: Projelerinizi MongoDb ile Hızlandırın @phpkonf

NoSql?

2009

Page 6: Projelerinizi MongoDb ile Hızlandırın @phpkonf

NoSql?

Page 7: Projelerinizi MongoDb ile Hızlandırın @phpkonf

NoSql?

Nosql artan veri büyüklüğüne cevap verebilmesi için

geliştirilmiş çeşitli veritabanı teknolojilerini kapsar.

http://www.mongodb.com/learn/nosql

Page 8: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Document-oriented?

Mongodb kayıtları ayrı

belgeler olarak kaydeder

Page 9: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Document-oriented?

Document-oriented database

http://en.wikipedia.org/wiki/Document-oriented_database

Page 10: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Bson?

Veri BSON olarak kaydedilir.

Page 11: Projelerinizi MongoDb ile Hızlandırın @phpkonf

MongoDb?

BSONPerformans için binary formata

çevrilen JSON (JavaScript Object Notation)

Page 12: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Schemeless?

ShamelessSchemeless

Tablo yok!İlişki yok!

Page 13: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Shemeless?

Yani

Bir kayıt önceden tanımlanmış olması

gerekmeksizin diğer belgelerde olan

veya olmayan bir veri yapısına sahip

olabilir.

Page 14: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Neden?

Güçlü indeksleme○ Geospatial indexes

○ TTL indexes

○ Compound indexes

○ Text indexes

Page 15: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Neden?

Full-Text Search

Page 16: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Neden?

Cache?

Ayrıca bir cache katmanına

ihtiyacınız kalmıyor.

Page 17: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Neden?

Aggregation FrameworkNative mapreduce

Aggregation pipeline

Page 18: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Neden?

DriverC, C++, C#, Go, Erlang, Java, Javascript, Node.js, Perl, Php, Python, Ruby, Scala, ColdFusion, D, Dart, Delphi, Fantom, F#, Lua, Matlab, Prolog, Opa, SmallTalk, R ...

Page 19: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Neden?

Hadoop Integration

Page 20: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Neden?

Horizontal ScalingKendi işinizi kendiniz kolayca yapın.

Page 21: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Hızlı Başlangıç

MongoDb Giriş

Page 22: Projelerinizi MongoDb ile Hızlandırın @phpkonf

MongoDb Download

www.mongodb.com/mongodb-editions

Page 23: Projelerinizi MongoDb ile Hızlandırın @phpkonf

MongoDb?

Windows ve Linux sunuclarda rahatlıkla kullanın!

Page 24: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Tüm Platformlar İçin!

Page 25: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Kolay Kurulum

$ w get http://fastdl.m ongodb.org/....tgz

Page 26: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Kolay Kurulum

$ tar -xf m ongo.tgz$ cd m ongo

Page 27: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Kolay Kurulum

$ sudo bin/m ongod

Page 28: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Kolay Kullanım

$ bin/m ongo

Page 29: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Yardıma İhtiyacınız Yoktur

$ help

Page 30: Projelerinizi MongoDb ile Hızlandırın @phpkonf

İlk Insert

$ ./bin/m ongoM ongoDB shell version: 2.4.9connecting to: test> use testsw itched to db test> db.col1.insert({ "a" : 123, "b" : "string" })

Önceden tablo tasarlamanıza ve db oluşturmanıza gerek yoktur.

Page 31: Projelerinizi MongoDb ile Hızlandırın @phpkonf

İlk Select

> db.col1.find(){ "_id" : O bjectId("5307e02b3fe8b5d0f5e51038"), "a" : 123, "b" : "string" }

> db.col1.rem ove({"a" : 123})

Page 32: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Db, Collection, Document

D atabase -> D bTable -> CollectionRow -> D ocum ent

Page 33: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Hazırlanın

Page 34: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Veri Yapısı

Page 35: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Veri Yapısı

Page 36: Projelerinizi MongoDb ile Hızlandırın @phpkonf

One-To-Many

İlk aklmıza gelen geleneksel ilişiki. Normalize edilmiş veri.

Page 37: Projelerinizi MongoDb ile Hızlandırın @phpkonf

One-To-Many

Page 38: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Hiyerarşik Veriler

Geleneksel tasarım.

Page 39: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Hiyerarşik Veriler

Page 40: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Veri Tasarımı

Page 41: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Veri Tasarımı

Page 42: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Veri Tasarımı

Page 43: Projelerinizi MongoDb ile Hızlandırın @phpkonf

MUTLU FİRMALAR

Page 44: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Mutlu Firmalar

Page 45: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Mutlu Firmalar

"We considered a number of different options, including file-based and in memory caches, as well as key-value databases, but ultimately decided that a document database would best suits our needs. After evaluating several applications we chose MongoDB, due to its support of dynamic queries, full indexes, including inner objects and embedded arrays, as well as auto-sharding."

Page 46: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Mutlu Firmalar

Page 47: Projelerinizi MongoDb ile Hızlandırın @phpkonf

UI s

Page 48: Projelerinizi MongoDb ile Hızlandırın @phpkonf

umongo - Mac OSX, Windows, Linux

http://www.edgytech.com/umongo/

Page 49: Projelerinizi MongoDb ile Hızlandırın @phpkonf

MongoHub - Mac

https://

github.com/bububa/MongoHub-Mac

Page 50: Projelerinizi MongoDb ile Hızlandırın @phpkonf

RockMongo

Web Based

http://www.rockmongo.com/

Page 51: Projelerinizi MongoDb ile Hızlandırın @phpkonf

TOOLS

docs.mongodb.org/ecosystem/tools

Page 52: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Ellerinizi Kirletmeden

Page 53: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Mongolab

MongoDb as A Service

Page 54: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Heroku

Page 55: Projelerinizi MongoDb ile Hızlandırın @phpkonf

Sıra Sizde

Page 56: Projelerinizi MongoDb ile Hızlandırın @phpkonf

@htayyar

[email protected]