Mysql Storage Engine

همه ای پایگاه داده ها از موتورهای ذخیره سازی (storage engine) برای انجام پردازش و مدیریت عملیات CURD استفاده می کنند.

پایگاه دادی Mysql هم از انواع موتور های ذخیره سازی ازجملهInnoDB,MyISAM,CSV,Memory,SEQENCE,

پشتیبانی می کند.

به صورت پیش فرض موتور ذخیره InnoDB فعال هست و اکثرا توسعه دهندگان حالت پیش فرض رو انتخاب می کنند و بعدا طبق نیاز پروژه عوض می کنند چون هر موتور ذخیره سازی کاربرد های خودش را دارد.

برای مشاهده همه ای موتور های ذخیره و پردازش اطلاعات می توان از دستور زیر استفاده کرد:

SELECT ENGINE, SUPPORT FROM INFORMATION_SCHEMA.ENGINES;

بعد از اجرای دستور بالا لیست موتور های Mysql نمایش داده می شود همان طور که می بینید InnoDB به صورت پیش فرض برای همه ای جدول ها ها فعال هست.

حالا چند تا از موتور های دخیره سازی مشهور که اکثرا استفاده می شود بررسی می کنیم و شما بسته به نیاز پروژه می توانید از آن استفاده کنید.

ویژگی های InnoDB Storage Engine

  1. پشتیبانی از تراکنش ها
  2. پشتبانی کامل از خاصیت ACID
  3. پشتیبانی از کلید خارجی
  4. ظرفیت ذخیره سازی تا 64TB

اگر نمی دانید خاصیت ACID چی هست می توانید از این لینک که دوستان زحمت کشیدن نوشتن استفاده کنید.

مفهوم ACID چیست و بعنوان یک توسعه دهنده چگونه در باره‌ی آن فکر کنیم؟

مشخصه های اصلی یک تراکنش ( ACID )

ویژگی های MyISAM Storage Engine

  1. مناسب برای داده های سنگین
  2. عدم پشتیبانی از تراکنش ها
  3. عدم پشتیبانی از خاصیت ACID
  4. عدم پشتیبانی از کلید خارجی
  5. ظرفیت ذخیره سازی تا 256TB

ویژگی های CSV Storage Engine

  1. داده های به صورت متن ساده ذخیره می شوند و می توان از فایل csv مستقیم داده وارد کرد
  2. عدم پشتیبانی از تراکنش ها
  3. عدم پشتیبانی از خاصیت ACID
  4. عدم پشتیبانی از کلید خارجی

ویژگی های NDB Storage Engine

  1. پشتیبانی از بانک اطلاعاتی کلاسترینگ
  2. پشتیبانی از تراکنش ها
  3. پشتیبانی از ویژگی های موتور ذخیره سازی Memory Storage Engine
  4. ظرفیت ذخیره سازی تا 384EB

منظور از بانک اطلاعاتی کلاسترنیگ این است که می توان داده های در جا و سرور های مختلفی با قابلیت تحمل خطای بالا ذخیره و بازیابی کرد.برای تکثیر اطلاعات به چندین سرور نیاز داریم و برای عملکرد و سرعت زیاد بهتر است سرور ها در یک مرکز باشند.

به صورت پیش فرض در اکثرا نسخه های Mysql این موتور ذخیره سازی پشتیبانی نمی شود و بهتر است که نسخه ای MySQL community Edition داخل سرور نصب شود.

ویژگی های Memory Storage Engine

  1. برای ذخیره داده ها از RAM استفاده می کند
  2. عدم پشتیبانی از کلید خارجی و تراکنش ها
  3. ظرفیت ذخیره سازی بسته به مقدار RAM سیستم یا سرور

مناسب برای داده های که نیاز به خواندن دارند.

و یه نکته به هر دلیلی سیستم یا سرور دوباره راه اندازی (restart) شود همه ای داده های از بین می رود بنابراین بهتر است که برای داده ای مهم و حیاطی از این موتور ذخیره سازی استفاده نشود.

برای مشاهده جزیئات ویژگی های هر موتور ذخیره سازی از این دستور می توانید استفاده کنید.

SHOW ENGINES;

برای مشاهده همه ای ویژگی های هر موتور ذخیره سازی بر روی این لینک کلیک کنید.