مانگو دیبی یک پایگاه داده توزیعشده مبتنی بر اسناد و عمومی است که محصولی بین پایگاه دادههای رابطهای و غیررابطهای (NoSQL) است. این از بین پایگاه دادههای غیررابطهای، پربارترین و شباهت بیشتری به پایگاه دادههای رابطهای دارد.
یک نمونه از یک سند مانگو دیبی
{
"_id": "5cf0029caff5056591b0ce7d",
"firstname": "Jane",
"lastname": "Wu",
"address": {
"street": "1 Circle Rd",
"city": "Los Angeles",
"state": "CA",
"zip": "90404"
},
"hobbies": ["surfing", "coding"]
}
چیز خاصی نیست، فقط یک قطعه داده JSON است. داده سند ذخیره شده در مانگو دیبی شبیه به این داده JSON است. به دلیل ذخیرهسازی دادههای JSON، فرمت دادههای ذخیره شده در مانگو دیبی بسیار انعطافپذیر است. بر خلاف MySQL که باید یک ساختار جدول ثابت داشته باشد، این بدان معنا است که میتوانید هر زمان فیلدها را اضافه یا حذف کنید و سرعت نیز بسیار سریع است.
نکته: اگر تجارت شما نیاز زیادی به تراکنشهای پیچیده، اتصالات و همسانی داده ندارد و شما فقط به خواندن و نوشتن سریع داده، همزمانی بالا، فرمتهای ذخیرهسازی انعطافپذیر و آزاد و عدم نیاز به تعریف ساختارهای جدول از پیش نیاز دارید، مانگو دیبی یک انتخاب خوب است.
ویژگیهای مانگو دیبی
عملکرد بالا
مانگو دیبی امکان ذخیره داده با عملکرد بالا را فراهم میکند. به ویژه:
- استفاده از مدل جاسازی داده میتواند عملیات I/O سیستم پایگاه داده را کاهش دهد.
- از ایجاد نمایهها پشتیبانی میکند، بنابراین کارایی پرس و جو بسیار بالا است و فیلدهای نمایهگذاریشده میتوانند فیلدهای اسناد جاسازیشده یا کلیدهای آرایهها باشند.
زبان پرسوجوی غنی
مانگو دیبی از مجموعهای غنی از عبارات پرسوجوی پشتیبانی میکند تا با سناریوهای مختلف پرسوجوی تجارتی مطابقت داشته باشد.
پشتیبانی از پرسوجوهای مکانی
برای تجارتهای آفلاین به آنلاین و تجارتهای مرتبط با مکان، پرسوجوهای مکانی مکرر نیاز است، مانند پرسوجوی فروشگاههای نزدیک، افراد نزدیک یا تعیین اینکه آیا شما در منطقه تجاری هستید یا خیر. تمامی این موارد نیاز به پشتیبانی از بازیابی مکانی دارند.
دسترسی بالا
مجموعه تکثیر مانگو دیبی، فراهم میکند:
- آغازکاری خودکار
- اضافهکردن داده
یک مجموعه تکثیر گروهی از نمونههای mongod است که همان مجموعه داده را حفظ میکنند و پشتیبانی از تکرار داده و پشتیبانی از دسترسی بالا دارند.
مقیاسپذیری افقی
مانگو دیبی پشتیبانی از مقیاسپذیری افقی را میکند. با استفاده از تقسیمبندی (sharding)، داده در سرورهای گروهی توزیع میشود.