Monday 10 March 2014

MongoDB - Introduction

Hôm nay mình sẽ làm seri bài giới thiệu bài về mongodb. Bài viết chủ yếu từ document trên trang chủ của nó (cái này mình viết là để note lại thôi nên chắc cũng không có gì đặc sắc lắm đâu :D )

1. MongoDB là gì? -> Open-sourced document database cung cấp high performance, high availibility, automatic scaling. (Mấy cái này DB này cũng chém như nhau, nhìn tới quen mắt luôn)
- High performance? -> Tại nó hỗ trợ embedded data model (cái này mình sẽ giới thiệu sau) giảm được I/O trên hệ thống. Hỗ trợ Index giúp query nhanh hơn.
- High Availability? -> có hỗ trợ replicate: automatic failover, data redundancy.
- Automatic Scaling? -> có horizontal scalability (nói đơn giản là dữ liệu của nó có thể phình to ra nhiều nhiều bao nhiều cũng được!??), nó làm bằng cách nào? đơn giản là "automatic sharding" phân tán dữ liệu trên các máy cluster (cái này giải thích sao nhá)

2. Tại sao là document database? -> Vì cấu trúc dữ liệu được tạo thành từ cặp field (trường) và value (giá trị). document ở đây gần giống với JSON object. Giá trị của field có thể bao gồm nhiều document khác, hoặc mảng của nhiều document khác.
Ví dụ, một document có dạng như sau:
{
name: "duy",
age: 24,
status: "single"
groups: ["male", "handsome"]
}

Lợi ích của document là gì? -> Cái này thì mình chưa hiểu rõ nữa, nên sẽ copy-paste nhá, từ từ mà ngâm
- Documents (i.e. objects) correspond to native data types in many programming languages.
- Embedded documents and arrays reduce need for expensive joins.
- Dynamic schema supports fluent polymorphism.