0
NOSQL
Not Only SQL
ПІДХОДИ:
• Допомогти

RDBMS (для
кешування) – Memcached
(RAM), Redis

• Google

big table,
Cassandra

• Замість

RDBMS –
M...
CACHE
just fast
MEMCACHED
Cons

Pros
• Складність
• Least

пошуку O(1)

Recently Used cache

• Задається

час зберігання

• Енергозалежна
...
REDIS
Переваги Memcached +
• ROM
• Clustering
• Transactions

Usecase: стійкий мемкешд, тайли
RDBMS
Key User

Name

Birthday

City

Key City

Key Post

Text

Date

Name

Key Country

Key User

…
…
DOCUMENT-ORIENTED DB
{
"Name":"Clark Kent",
"Place":{
"City":"Metropolis",
"Country":"USA"
},
"Posts":[
{
"Date":"04 June ...
MONGODB
sql without sql.
and faster
PROS/CONS
Pros:
1.
2.
3.
4.
5.
6.
7.
8.

Документо-орієнтованість – документ відображає об'єкт, що значно спрощує програму...
Порівняння швидкодії MongoDB та MSSql 2008
ПРИКЛАДИ ДОКУМЕНТІВ В БД

Структура збереження тегів
Структура закладу
ДОКУМЕНТИ
• Вкладеність
• 15

mb max size

• _id

!!!

• Масиви, можливість

індексування

їх
QUERIES

db.musicians.find({$or:[{"age":{$gte:"70"}},{"name":"George"}],"bands.name":{$in:
["Beatles","beatles"]}}).sort({...
UPSERT (MERGE)
Проапдейтити інфу про Джона Ленона, а якщо його
немає в базі, то insert.
> db.musicians.update({"name":"Joh...
GEOSPATIAL INDEXES
GeoJson: { <location field> : { type : "<GeoJSON type>" ,
coordinates : <coordinates>
} }
db.points.ens...
ЖИТТЄВИЙ ПРИКЛАД
ДЯКУЮ
за увагу
Upcoming SlideShare
Loading in...5
×

Mongo

120

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
120
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Mongo"

  1. 1. NOSQL Not Only SQL
  2. 2. ПІДХОДИ: • Допомогти RDBMS (для кешування) – Memcached (RAM), Redis • Google big table, Cassandra • Замість RDBMS – MongoDB, CouchDB • Графи – Neo4j
  3. 3. CACHE just fast
  4. 4. MEMCACHED Cons Pros • Складність • Least пошуку O(1) Recently Used cache • Задається час зберігання • Енергозалежна пам’ять • Відсутній механізм кластеризації • Обмежений функціонал Usecase: Дані з частими запитами (ключ сесії, базова інфа користувача)
  5. 5. REDIS Переваги Memcached + • ROM • Clustering • Transactions Usecase: стійкий мемкешд, тайли
  6. 6. RDBMS Key User Name Birthday City Key City Key Post Text Date Name Key Country Key User … …
  7. 7. DOCUMENT-ORIENTED DB { "Name":"Clark Kent", "Place":{ "City":"Metropolis", "Country":"USA" }, "Posts":[ { "Date":"04 June 2013", "Text":"Great day!" }, { "Date":"05 June 2013", "Text":"Hello, Universe!" } ] }
  8. 8. MONGODB sql without sql. and faster
  9. 9. PROS/CONS Pros: 1. 2. 3. 4. 5. 6. 7. 8. Документо-орієнтованість – документ відображає об'єкт, що значно спрощує програмування системи; Механізм вкладеності документів забезпечує певну можливість позбавлення від “важких” joinів; Потокова вставка; Хороша масштабованість, завдяки механізму “Віртуального Шардингу”; Map-Reduce фреймворк; Відсутність обмежень на структуру документа, що значно прискорює розробку; JSON; JS; Aggregation pipeline Cons: 1. 2. 3. 4. Ускладнює аналітику; Збитковість даних та потенційні проблеми спричинені їх вкладеністю; Відсутність транзакцій; Ускладнення підтримки з часом через відсутність схеми.
  10. 10. Порівняння швидкодії MongoDB та MSSql 2008
  11. 11. ПРИКЛАДИ ДОКУМЕНТІВ В БД Структура збереження тегів Структура закладу
  12. 12. ДОКУМЕНТИ • Вкладеність • 15 mb max size • _id !!! • Масиви, можливість індексування їх
  13. 13. QUERIES db.musicians.find({$or:[{"age":{$gte:"70"}},{"name":"George"}],"bands.name":{$in: ["Beatles","beatles"]}}).sort({"name":1}).pretty()
  14. 14. UPSERT (MERGE) Проапдейтити інфу про Джона Ленона, а якщо його немає в базі, то insert. > db.musicians.update({"name":"John","second name":"Lennon"}, {$set:{"born":"9 October 1940","age":"40"}},{"upsert":true}) > > db.musicians.findOne({name:"John"}) { "_id" : ObjectId("51d6597a58ddf14f9052a7db"), "age" : "40", "born" : "9 October 1940", "name" : "John", "second name" : "Lennon" } >
  15. 15. GEOSPATIAL INDEXES GeoJson: { <location field> : { type : "<GeoJSON type>" , coordinates : <coordinates> } } db.points.ensureIndex( { <location field> : "2dsphere" } ) Points within a Circle Defined on a Sphere db.<collection>.find( { <location field> : { $geoWithin : { $centerSphere : [ [ <x>, <y> ] , <radius in rad (10/3959)> ] } } } ) GeoJSON Objects Bounded by a Polygon db.<collection>.find( { <location field> : { $geoWithin : { $geometry : { type : "Polygon" , coordinates : [ <coordinates> ] } } } } ) Proximity to a GeoJSON Point db.<collection>.find( { <location field> : { $near : { $geometry : { type : "Point" , coordinates : [ <longitude> , <latitude> ] } , $maxDistance : <distance in meters> } } } )
  16. 16. ЖИТТЄВИЙ ПРИКЛАД
  17. 17. ДЯКУЮ за увагу
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×