تفاوت دیتابیس‌های MySql,PostgreSQL,Cassandra,Mongo

هدف من از این مقاله هستش که تا حدی ۴تا دیتابیس محبوب رو با هم دیگه مقایسه کنم که دوتا از این دیتابیس‌ها NoSql و دوتای دیگر Sql هستند .


دیتابیس PostgreSQL : این دیتابیس از نوع RDBMS هستش و به خوبی از خواص ACID که توی این پست قبلا توضیح دادم پشتیبانی میکنه همچنین برای جاهایی که نیاز به ترانزاکشن داریم خیلی عالیه و یا جاهایی که نیاز به کوئری‌های پیچیده و عملیات Read سنگین وجود داره هم خیلی خوب جواب میده. پستگرس اوپن سورس هستش و کامینیوتی خیلی قوی ای داره .پسترگرس از فول تکست سرچ و json هم به خوبی پشتیبانی میکنه. اسکیل کردن عمودی (افزایش قدرت سرور) خیلی راحت انجام میشه اما برای اسکیل افقی باید از ابزار خاصی مثل Citus استفاده کرد.پستگرسبرای برنامه‌های پیچیده‌تری که نیاز به پشتیبانی از انواع داده‌های پیچیده دارند، تحلیل داده‌ها، سیستم‌های مالی و بانکی، برنامه‌های GIS و نقشه‌برداری بسیار مناسب است.

دیتابیس MySql : این دیتابیس هم از نوع RDBMS هستش و بازم از ACID پشتیبانی میکنه اما پستگرس قویتره، البته Mysql انجین های مختلفی مثل InnoDB و یا MyISAM دارد که تو این پست توضیح دادم . نکته ای که وجود پشتیبانی از ترنزاکشن ها و خواص ACID با انجین InnoDB پشتیبانی میشه همچنین لاک شدن در سطح row انجام میشه و از ورژن ۵.۵ به بعد دیفالت همین InnoDB هستش و همچنین این انجین حافظه بیشتری هم استفاده میکنه . ولی برای عملیات خواندن سریع میتونیم از انجین MyISAM استفاده کنیم که توی این حالت از فول تکست سرچ هم پشتبانی میشه و لاک در سطح table انجام میشه .

هدف ما این هستش که سیستم فروشگاه ساز پیشرفته رو با گولنگ پیاده سازی کنیم و در نهایت روی کوبرنتیز دیپلوی اجرا کنیم یعنی ۰ تا ۱۰۰ یه پروژه گولنگی . به زودی ویدیوی این آموزش ها در وبسایت uncodev منتشر خواهند شد.

دیتابیس Cassandra : این دیتابیس از نوع Nosql هستش و خوراکش write سریعهه :) ، کاساندرا در دسترس بودن و مقیاس پذیری خیلی بالایی داره و حجم زیادی از داده ها را در چندین Node به راحتی مدیریت میکنه . ( اگر در مورد مفهوم تئوری Cap نیاز دارید بیشتر بخونید به این پست مراجعه کنید) .کاساندرا برای داده‌های بزرگ و سیستم‌های real-time با نیاز به دسترس‌پذیری و مقیاس‌پذیری بالا مناسب است.

دیتابیس Mongo : این دیتابیس از نوع Nosql هستش ، مقیاس‌پذیری افقی خوب، انعطاف‌پذیری بالا در مدل داده‌ای، قابلیت Indexing قوی، پشتیبانی از داده‌های بدون ساختار از ویژگی های مونگ، هستش. مونگو برای برنامه‌هایی که نیاز به انعطاف‌پذیری بالای مدل داده‌ای دارند، اپلیکیشن‌های موبایل و وب، سیستم‌های مدیریت محتوا، تحلیل داده‌های بزر مناسب است.