MongoDB гэж юу вэ? Part1

MongoDB бол нээлттэй эх дээр суурилсан, уян хатан, чөлөөт схем тэй (schema free),  өндөр хурдны ажиллагаатай,  баримт (document) хандалтад  С++ хөгжүүлэгдсэн өгөгдлийн бааз юм. Зорилго нь бол key value хадгалалт болон уламжлал RDBMS(Relational Database Management System)-ийн хоорондын ялгааг арилгах. MongoDB өгөгдлийг JSON  шиг төрлийн баримтуудын (документ) цуглуулгад  хадгаладаг.  Энэ нь application-д өгөгдлийг загварчлахад илүү бодитой, өгөгдөл цогц шатлалаар бие биедээ агуулагдах(nested) боломжтой болдог ба хүсэлтчлэгдэх, индекслэгдэх мөн боломжтой.

 

Онцлогууд (Features)

Энгийн хүсэлтүүд:

MongoDB  бол transaction болон join байхгүй  баримт агуулах юм. Хүсэлтүүд хялбархан бичигддэг мөн хялбархан гүйцэтгэгддэг.

Баримтад тулгуурласан өгөгдлийн бүтэц

Ерөнхий хадгалах нэгж нь Ruby hashesh, JSON, Python тольнуудтай нэгэн адил.  Баялаг өгөгдлийн бүтэц нь массив болон бусад баримтуудыг агуулах боломжтой.  Баримтад тулгуурласан өгөгдлийн бүтцийн давуу тал нь гэвэл та ганцхан entity байгуулалтаар relational өгөгдлийн баазад хэд хэдэн хүснэгт шаардагдах зүйлийг төлөөлүүлэх боломжтой байдаг.

Sharding (жижиглэн хуваах)

Хэрэв та маш их хэмжээний өгөгдөлтэй ба таны баазын хэмжээ нэг серверээс илүү гарсан бол sharding магадгүй танд тусалж чадах байх.  Энэ нь таны баазыг хөндлөнгөөр нь жинлдэг. Энэ юу вэ гэвэл шинэ машин авчраад тэгээд хэд хэдэн  машинуудад өгөгдлийг хуваана, ингэсэн нь танд илүү хадгалах хэмжээ өгөгөхөөс гадна ажиллагааг сайжруулж, дискийн бүтээмжийг нэмэгдүүлдэг.  Sharding хийсний гол давуу тал нь гэвэл та одооноос  5 жилийн турш өгөгдлийн баазтай анхаарах шаардлагагүй мөн  нэмэлт өмнөх сайжруулалт  (pre-optimization) , систем уналт байхгүй боллоо гэсэн үг.

 

GridFS

Энгийн бөгөөд MongoDB дэх хамгийн хэрэгтэй ойлголт. Уламжлалт өгөгдлийн баазууд жишээ нь MySQL баазад файл хадгалахыг зөвшөөрдөггүй. Жишээ нь: Хэрэв би хэрэглэгчийн профайлын зургийг хадгалахыг хүсвэл, би тэр зургийн URL/Path-ыг нь өгөгдлийн баазад хадгалах хэрэгтэй, зургийг бүгдийг нь биш. MongoDB-ын GridFS файлыг баазад хадгалахыг зөвшөөрдөг. MongoDB replication (нэг өгөгдлийг олон серверт хадгалах) болон sharding хэрэгслүүдээр хангагдаж хийгдсэн (built in), файлууд зөвхөн тэнд хадгалагдахаас гадна мөн дахин сэргээгдэх (backup)  боломжтой байдаг.

Үргэлжлэл байгаа

Холбоосууд:

http://www.tutkiun.com/2010/09/is-mongodb-next-big-thing.html

http://www.codefutures.com/database-sharding/

http://en.wikipedia.org/wiki/Replication_(computer_science)

http://www.mongodb.org/display/DOCS/MongoDB,+CouchDB,+MySQL+Compare+Grid

http://en.wikipedia.org/wiki/Shard_(database_architecture)

 

Advertisements

One thought on “MongoDB гэж юу вэ? Part1

Хариулт үлдээх

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Өөрчлөх )

Twitter picture

You are commenting using your Twitter account. Log Out / Өөрчлөх )

Facebook photo

You are commenting using your Facebook account. Log Out / Өөрчлөх )

Google+ photo

You are commenting using your Google+ account. Log Out / Өөрчлөх )

Connecting to %s