# پایگاه‌های داده > NoSQL >  آیا میشه mysql رو به nosql تبدیل کرد؟

## theboy

سلام.
می خواستم بدونم اگر یه موقع پایگاه داده خیلی بزرگ وسنگین شد، میشه برای کاهش فشار سیستم رو به nosql تغییر داد؟ (بدون از دست رفتن اطلاعات).
کلا شدنیه؟ آسونه یا خیلی سخت و پیچیدست؟

----------


## cups_of_java

کار که نشد نداره... اما بستگی به مدل داده ای شما داره... چقدر از RI ها استفاده کرده باشید؟ (Referencial Integrity) چقدر از ظوابط خاص SQLی استفاده کرده باشید و روش وابستگی داشته باشید تو کدتون...
کلن میتونه آسون باشه... می تونه هم خیلی سخت باشه! 
ضمنن NOSQL یک چیز واحد نیست... بستگی داره به کدوم خصوصیات از NoSQLها میخواید برید؟

----------


## theboy

راستش من هیچ چی از nosql نمی دونم فقط می دونم که خیلی سریع تر هست و برای پایگاه های داده ی سنگین خوبه، الان دارم سیستمم رو که تعداد کوئری هاش ممکنه زیاد بشه، با mysql می نویسم، می خوام مطمئن بشم بعدا میشه با پرداخت هزینه ای به یک گروه برنامه نویس سیستم رو به nosql تغییر داد، حالا سخت یا آسون بودنش مهم نیست مهم اینکه که بشه و البته اطلاعات سایت هم حفظ بشه.

----------


## cups_of_java

> سریع تر


تا سریع رو تو چه شرایطی و چه جوری تعریف کنی.




> پایگاه های داده ی سنگین


یعنی چقدر؟ چند ده میلیون رکورد؟ چند صد ملیون رکورد؟ جند بیلیون رکورد؟




> الان دارم سیستمم رو که تعداد کوئری هاش ممکنه زیاد بشه


ذاته سیستمت چیه؟ بیشتر می خونه از DB? بیشتر می نویسه؟ دایم در حال گزارش گرفتنه در طول روز؟ مدل دیتات چیه؟ زیاده Query هاش یعنی چی؟ Queryهات شکلش چین؟ بیشتر join دارن؟ 




> بعدا میشه با پرداخت هزینه ای به یک گروه برنامه نویس سیستم رو به nosql تغییر داد


اگه سیستمت یه نرم افزار کوچیک و جمع و جوره و تازه تمیز هم نوشته بشه. آره میشه.
اما اینکار کلن توصیه نمیشه مخصوصن تو سیستم های بزرگ... ممکنه مجبور به بازنویسی کل سیستم بشی و هزینه اش که دوباره و بزرگتر از دفعه اول خواهد بود هیچی... ممکنه باعث مرگ سیستم بشه.

معماری سیستم های NoSQL در اساس یه فرقایی با سیستم های SQLی داره که ممکنه تاثیر توی سراسر سیستمت و کدش بزاره! واسه همین میگم میتونه نشدنی هم باشه.

----------


## cups_of_java

در نهایت، با توجه به چیزایی که نوشتی، نظر من اینه که
اگر نمیخوای الان هزینه کنی و مشاوره بگیری روی سیستم و انتخاب انجام بدی و ترجیحت SQL هست. بهتره دو تا چیز رو رعایت کنی:
1) یک اینکه از SQL درست استفاده کنی. خیلی سیستم های پر ترافیک و پر حجم اطلاعاتی هست که روی SQL نوشته شده و داره با سرعت بسیار بالا کار مکنه. مهم دانش استفاده درست از SQLی هاست که باعث میشه تو سیستم های بزرگ کم نیارن.
2) توی سیستمت حتمن از الگو هایی که دسترسی (ِDAO, Data Mapper, Active Record, Repository) به بانک اطلاعاتی رو برات ایزوله می کنن تو سراسر کد برنامه  استفاده کن. با این کار بعدن راحت تر می تونی مخزن اطلاعاتیت رو عوض کنی و از SQL به یه چیز دیگه مهاجرت کنی.

----------


## معصومه ابهامی

به نظر من با توجه به نیاز و حجم داده ها باید سیاست درستی رو بگیری و این کار به نوع دیتابیس ربطی نداره که رابطه ای باشه یا NoSQL

----------


## مبین رنجبر

> به نظر من با توجه به نیاز و حجم داده ها باید سیاست درستی رو بگیری و این کار به نوع دیتابیس ربطی نداره که رابطه ای باشه یا NoSQL



کدوم کار به نوع دیتابیس ربطی نداره ؟

----------

