سلام خدمت دوستان و اساتید محترم .
فرض کنید من تا الان با mysql کار کردم و اینو میدونم به راحتی میتونم اینسرت و سلکت کنم و ریلیشن بزنم یا کالکت کنم اطلاعاتمو یا حتی join بزنم و.....
اگه الان بخوام همه این کار هارو با مونگو انجام بدم ایا شدنیه یا با چالش هایی مواجه میشم ؟
فرض بر اینکه من میخوام ی اپلیکیشنی بنویسم با node که باید هرکاری که میتونم تو mysql بکنم رو تو مونگو هم بتونم انجام بدم .
اگه نه پیشنهاد شما چیه .
تشکر .
@hesammousavi
@ali.bayat
@Alimotreb
و بقیه اساتید و دوستان ...
نه برای من این مهمه که بتونه همه کارهای مختلف رو انجام بده مخصوصا ریلیشن ها و جوین ها و عملیات اصلی curd حالا میدونم دستوراتش فرق میکنه که اونم نیازمند یاد گیریه کاملشه .
سوالی که این وسط پیش میاد اینه که داستان سایت های مختلف یا حتی استارت آپ هایی که از مونگو به طور کامل استفاده نمیکنن و ازش به عنوان دیتابیس دوم استفاده میشه برای بعضی از عملیات چیه ! چون توی بعضی از بنچ مارک ها دیده میشه برای عملیات ثبت ویرایش حذف زیاد چنگی به دل نمیزنه اما برای خوندن اطلاعات عالیه !
شاید پاسخ شما همینجا باشد
مونگو کلا از لحاظ ساختار و رابطه با mysql فرق داره.
توی mysql جدول داریم اما توی مونگو collection داریم.
توی mysql ردیف یا row داریم اما توی مونگو document داریم.
توی mysql قوانین join رو داریم اما توی مونگو Embedded Documents رو داریم.
مونگو بدرد ذخیره سازی اطلاعات رابطه ای نمیخوره پس اگه روابط یا relation های زیاد داری بهتره سمتش نری چون کند عمل میکنه و بازدهی رو پایین میاره.
مونگو بیشتر بدرد انباشته کردن اطلاعات برای ثبت لاگ ها میخوره. بیشتر سرعت خواندن و نوشتن داره تا پردازش روابط. اگه میخوای روابط رو پردازش کنی بهتره از کاساندرا استفاده کنی (cassandra) که یک دیتابیس بر حسب گراف (graph) هست. یا از neo4j استفاده کن.