گروهآموزشی مجموعه فاوا
mongoDB(مونگودیبی) یک Document-oriented database (پایگاه داده سند-گرا) است. و در گروه پایگاههای داده NOSQL قرار دارد.دراین نوع پایگاه داده جدول و رکورد وجود ندارد و از collection (مجموعه) و سند استفاده میشود. میتوان گفت مجموعه شبیه به جدول و سند شبیه به رکورد در پایگاه داده رابطهای است.
در این پایگاه داده، دادهها ساختار ثابت ندارند و هر دو سند (شبیه رکورد در پایگاه رابطهای) میتواند ساختار کاملا متفاوت داشته باشد، به این نوع ساختار BSON میگویند. به عنوان مثال ممکن است دو سند از یک موجودیت در این پایگاهداده به اشکال زیر موجود باشد:
سند ۱:
id_ – name – age
سند ۲:
id_ – family
BSON چیست؟ مونگودیبی دادهها را به شکل json ذخیره میکند. به این ساختار در مونگودیبی BSON میگویند. ساختار BSON به شکل زیر است.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
{
“_id”:ObjectId(“b7d284dad1058f5698gorjhdc”),
“Name”:”mahdi”,
“age”:”30″,
“Date of Birth”:”21/05/79″,
“address”:{
“city”:”mashhad”,
“PostalCode”:”9139555789″
},
“phoneNumber”:[
{
“type”:”Home”,
“number”:”58795555″
},
{
“type”:”work”,
“number”:”05117673600″
}
]
}
|
از مزیتهای پایگاه داده مونگودیبی نسبت سایر پایگاههای داده رابطهای (مانند MySQL) امکان پردازش و جستجو در حجم بسیار بالاتری از دادهها در لحظه و همچنین امکان دخیره حجم بالاتری از دادهها است.
سرعت پردازش بالاتر: پایگاه داده رابطهای در هر جستجو و یا در هر ذخیره داده باید شروط زیادی مانند روابط بین جدولها و صحت مقادیر رکوردها را بررسی کند که این پروسهها سربار RAM و CPU را به شدت افزایش میدهد در حالیکه مونگودیبی به دلیل ساختار NOSQL تنها دخیره و جستجو میکند و در نتیجه سرعت دستیابی و ذخیره دادهها به شدت کاهش مییابد.
دخیره حجم بالاتر دیتا: پایگاههای داده به دو شکل میتواند حجم دادههای قابل ذخیره در سیستم را افزایش دهند. horizontal-scaling و vertical-scaling.
همانطور که در بالا گفتیم در مونگودیبی میتوان با استاده از horizontal-scaling که shard نامیده میشود حجم داده قابل ذخیره و همچین سرعت دسترسی به داده را افزایش داد.
مزیتهای استفاده از shard:
مونگودیبی دادهها را در سطح مجموعه پخش میکند. به این معنی که دادههای یک مجموعه را در بین nodeها و shardها پخش میشود. مونگودیبی برای مدیرت نحوه پخش شدن دادهها از shard key استفاده میکند. shard key یه کلید ساده و یا یک کلید ترکیبی است که در همه سندها وجود دارد. عموما id_ میتواند به عنوان یک shard key استفاده شود.
مونگودیبی برای پخش دادهها از دو نوع shard key استفاده میکند. range based partitioning و hash based partitioning.
در این روش بر خلاف روش Range Based Sharding دادهها کاملا در chunkها پخش میشوند و در نتیجه فشار پردازش روی یک node نخواهد بود. از معایب این روش این است که بر خلاف روش Range Based Sharding جستجو سریع بروی دادههای یک رنج آسان نیست.