معرفی موتورهای ذخیزه سازی پایگاه داده ها
همه ای پایگاه داده ها از موتورهای ذخیره سازی (storage engine) برای انجام پردازش و مدیریت عملیات CURD استفاده می کنند.
پایگاه داده ای Mysql هم از انواع موتور های ذخیره سازی ازجملهInnoDB,MyISAM,CSV,Memory,SEQENCE,
پشتیبانی می کند.
به صورت پیش فرض موتور ذخیره InnoDB فعال هست و اکثرا توسعه دهندگان حالت پیش فرض رو انتخاب می کنند و بعدا طبق نیاز پروژه عوض می کنند چون هر موتور ذخیره سازی کاربرد های خودش را دارد.
برای مشاهده همه ای موتور های ذخیره و پردازش اطلاعات می توان از دستور زیر استفاده کرد:
SELECT ENGINE, SUPPORT FROM INFORMATION_SCHEMA.ENGINES;
بعد از اجرای دستور بالا لیست موتور های Mysql نمایش داده می شود همان طور که می بینید InnoDB به صورت پیش فرض برای همه ای جدول ها ها فعال هست.
حالا چند تا از موتور های دخیره سازی مشهور که اکثرا استفاده می شود بررسی می کنیم و شما بسته به نیاز پروژه می توانید از آن استفاده کنید.
ویژگی های InnoDB Storage Engine
- پشتیبانی از تراکنش ها
- پشتبانی کامل از خاصیت ACID
- پشتیبانی از کلید خارجی
- ظرفیت ذخیره سازی تا 64TB
برای آشنایی بهتر خاصیت ACID می توانید از این لینک استفاده کنید ل .
ویژگی های MyISAM Storage Engine
- مناسب برای داده های سنگین
- عدم پشتیبانی از تراکنش ها
- عدم پشتیبانی از خاصیت ACID
- عدم پشتیبانی از کلید خارجی
- ظرفیت ذخیره سازی تا 256TB
ویژگی های CSV Storage Engine
- داده های به صورت متن ساده ذخیره می شوند و می توان از فایل csv مستقیم داده وارد کرد
- عدم پشتیبانی از تراکنش ها
- عدم پشتیبانی از خاصیت ACID
- عدم پشتیبانی از کلید خارجی
ویژگی های NDB Storage Engine
- پشتیبانی از بانک اطلاعاتی کلاسترینگ
- پشتیبانی از تراکنش ها
- پشتیبانی از ویژگی های موتور ذخیره سازی Memory Storage Engine
- ظرفیت ذخیره سازی تا 384EB
منظور از بانک اطلاعاتی کلاسترنیگ این است که می توان داده های در جا و سرور های مختلفی با قابلیت تحمل خطای بالا ذخیره و بازیابی کرد.برای تکثیر اطلاعات به چندین سرور نیاز داریم و برای عملکرد و سرعت زیاد بهتر است سرور ها در یک مرکز باشند.
به صورت پیش فرض در اکثرا نسخه های Mysql این موتور ذخیره سازی پشتیبانی نمی شود و بهتر است که نسخه ای MySQL community Edition داخل سرور نصب شود.
ویژگی های Memory Storage Engine
- برای ذخیره داده ها از RAM استفاده می کند
- عدم پشتیبانی از کلید خارجی و تراکنش ها
- ظرفیت ذخیره سازی بسته به مقدار RAM سیستم یا سرو
- مناسب برای داده های که نیاز به خواندن دارند
و یه نکته به هر دلیلی سیستم یا سرور دوباره راه اندازی (restart) شود همه ای داده های از بین می رود بنابراین بهتر است که برای داده ای مهم و حیاطی از این موتور ذخیره سازی استفاده نشود.
برای مشاهده جزیئات ویژگی های هر موتور ذخیره سازی از این دستور می توانید استفاده کنید
SHOW ENGINES;