تغییر engine دیتابیس ها از InnoDB به MyISAM ( دسترسی یوزر )

  • InnoDB یکی از موتورهای ذخیره سازی اطلاعات در دیتابیس MySQL است. در مقایسه با سایر موتورهای ذخیره سازی پایگاه داده (همچون MYISAM و … ) ، InnoDB دارای نقصی در زمینه محاسبه فضای استفاده نشده در جداول دیتابیس است. این مسئله به مرور زمان باعث حجیم شدن پایگاه داده مربوطه خواهد شد.

    همانطور که می دانید در دیتابیس سرور یک فلدر با نام مشابه به ازای هر دیتابیس (در مسیر مشخص شده ) ایجاد می شود که این فلدر شامل موارد ذیل می باشد :

    -          تمامی فایلهای مربوط به دیتابیس

    -           فایلهای ibd  ، که تنها برای هر یک از جداول InnoDB  ایجاد می شود

    نکته : این فایلها شامل ساختار دیتابیس در سیستم/ سرور مربوطه می باشند و در زمینه ریستور قابل استفاده نخواهند بود.

    فایلهای ibd  شامل لاگ های مربوط به جداول innoDB  می باشند که به مرور زمان ، با انجام تراکنش ها ، حجم این فایلها به صورت چشم گیری بالا می رود و از آنجا که حجم اصلی دیتابیس از طریق فلدر موجود در دیتابیس سرور محاسبه می گردد لذا حجم کل دیتابیس نیز به همین منوال افزایش خواهد یافت.

    متأسفانه در MySQL (برخلاف MS-SQL ) ابزار یا دستوری برای حذف لاگ فایلها وجود ندارد. همچنین با حذف و ایجاد مجدد دیتابیس InnoDB  اگرچه این مشکل به صورت موقت حل خواهد شد ولی متاسفانه با انجام تراکنش های جدید و ازدیاد حجم لاگ فایلها مجدداً شرایط قبل تکرار خواهد شد.

    از آنجا که گزارش حجم جداول در ابزار PHP MY Admin شامل حجم لاگ فایلها نمی باشد لذا جمع حجم جداول کمتر از حجم واقعی اشغال شده  ،در همان زمان ، در دیتابیس سرور خواهد بود. همچنین حجم بک آپی که از این طریق تهیه می شود نیز به دلیل فوق ذکر ، کمتر از حجم واقعی خواهد بود.

    بنابراین راهکار عملی در صورت امکان ، تغییر موتور جداول از InnoDB  به MYISAM  میباشد. در صورتیکه شرایط جداول و کارکردهای مورد نیاز امکان این تغییر را فراهم ننماید ، تنها راهکار ممکن، ارتقاء سرویس میزبانی به پلان بالاتر با حجم دیتابیس مناسب خواهد بود.

    باتوجه به توضیحات ارائه شده در رابطه با فایل ibd  ، بک آپ هایی که به صورت خودکار (مانند بک آپ های ایران پیج ) از جداولInnoDB   تهیه می شوند قابل ریستور نخواهند بود لذا در صورتیکه موتور جداول دیتابیس شما InnoDB  می باشد به خاطر داشته باشید که باید به صورت دوره ای از طریق ابزار PHP MY Admin  نسبت به تهیه بک آپ از اطلاعات خود اقدام نمایید یا اینکه نسبت به تغییر به انجین MyISAM اقدام نمایید در غیر اینصورت متاسفانه ایران پیج ( و حتی سایر سرویس دهندگان ) در این مورد بک آپ قابل بازیابی جهت ارائه نخواهد داشت.

     

  • 1- برای تغییر engine دیتابیس ها از InnoDB به MyISAM  وارد phpmyadmin شوید

    ۲- بر روی نام دیتابیس کلیک کردید

    ۳- سپس تیبلی که نوع آن InnoDB هست را بر رویش کلیک کنید

    ۴-در صفحه جدید از تب های بالا بر روی oprations کلیک کرده

    ۵- در صفحه جدید گزینه Storage EngineDocumentation را یافته و از منوی کشویی جلوی آن MyISAM را انتخاب نمایید

    ۶- بر روی گزینه GO کلیک کنید

  • ۱- برای تغییر engine دیتابیس ها از InnoDB به MyISAM  وارد phpmyadmin شوید

    ۲- بر روی نام دیتابیس کلیک کردید

    ۳-در صفحه جدید از تب های بالا بر گزینه export کلیک کنید

    ۴- فایل را دانلود کنید و با notepad یا notepad++ واژه های InnoDB را یافته و با MyISAM جایگذاری کنید

    ۶- پس از انجام ابتدا یک دیتابیس جدید بسازید و سپس این فایل را که بر روی رایانه ویرایش کردید زیپ کرده ( به صورت dbname.sql.zip ) و سپس ایمپورت کنید

    ۷- مشخصات دیتابیس جدید را به فایل کانفیگ هاست اسکریپت اضافه کنید

    ۸- دیتابیس قدیمی را پس از تست کردن دیتابیس جدید حذف کنید

 

منبع : کانفیگ سرور

پست های مرتبط

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>