دوره آموزش مانگو دی بی: قسمت 2 - چرا از مانگو استفاده کنیم؟
بعد از قسمت مقدمه حالا میخوایم ببینیم اصلا جه دلیلی برای استفاده از مانگو دی بی و کلا دیتابیس های nosql است؟
به طور کلی نمیشه گفت nosql از sql بهتره و باید با توجه به پروژه بهترین دیتابیس رو انتخاب کنیم. در پروژه های بزرگ هم معمولا از چند نوع دیتابیس استفاده میشه تا به بهترین نتیجه برسیم. ولی در ادامه به طور کلی میخوایم بررسی کنیم چه زمانی از دیتابیس های رابطه ای و چه زمانی از دیتابیس های غیر رابطه ای استفاده کنیم.
چه زمانی از SQL استفاده کنیم؟
با کوئری ها و گزارش های پیچیده سر و کار داریم. توی sql میتونیم با یک اسکریپت داده های مختلف در جدول های مختلف رو با هم دریافت کنیم. توی nosql رابطه ای بین data type ها تعریف نمی شود، میتونیم کوئری بسازیم ولی کندتر از sql عمل می کند.
انتقال داده (Transaction) های سنگین و بزرگ دارید. از آنجایی که دیتابیس های رابطه ای از قاعده ACID پیروی می کنند. برای تغییرات سنگین و زیاد در داده های پایگاه داده بهتر عمل می کنند.
به دنبال تغییرات زیاد نیستید. اگه با داده های باحجم بالا و یا data type های زیاد سر و کار ندارید، استفاده از دیتابیس های nosql مزیتی به حساب نمیاد.
چه زمانی از NoSQL استفاده کنیم؟
به طور مداوم ویژگی ها و data type های جدید به پایگاه داده اضافه می کنید. اگر داده های برنامه از شماتیک خاصی پیروی نمی کنند و با پیشرفت پروژه تغییرات زیادی در آن اعمال خواهید کرد.
انسجام داده ها برایتان اولویت ندارد. به طور کلی اگر اصول ACID برایتان اولویت ندارد، به عنوان مثال میخواهید یک شبکه اجتماعی بسازید که اگر کاربر یک پست جدید منتشر کند، لازم نیست در یک زمان واحد آن پست به بقیه نشان داده شود.
دیتابیس های رابطه ای به صورت vertically scale up هستند یعنی با بزرگتر شدن دیتابیس و برنامه تون نیاز دارید که برای سروری که آن دیتابیس را اجرا می کند منابع (RAM و Memory) بیشتری مهیا کنید ولی دیتابیس های nosql میتوانند به صورت horizontally گسترش پیدا کنن و از چند سرور با منابع کمتر در کنار هم به صورت توزیع شده استفاده کنید.
در رابطه با دیتابیس ها نکات دیگری هم هست که از حوصله ی این آموزش خارجه و اگر علاقه دارید خودتون در موردش مطالعه کنید.