آموزش تبدیل موتور ذخیره سازی دیتابیس MySQL از MyISAM به InnoDB

یکی از بزرگ‌ترین دلایلی که سایت‌های وردپرسی بزرگ سرعت بسیار کمی دارند این است که بانک اطلاعاتی آنها بهینه نشده است. بسیاری از سایتهای قدیمی هنوز از موتور ذخیره سازی MyISAM در پایگاه داده خود استفاده می‌کنند. طی سالهای اخیر، InnoDB نشان داده است که عملکرد بهتری داشته و قابل اطمینان تر است. دلیل عمده استفاده از InnoDB نسبت به MyISAM، عدم قفل کامل یک سطح از داده است. این به شما امکان می‌دهد تا داده هارا سریع‌تر پردازش کنید.

آیا از انجین MyISAM استفاده می کنید یا InnoDB؟

وردپرس در قدیم از انجین MyISAM استفاده می‌کرد اما سال‌هاست که آن را کنار گذاشته و به صورت پیش فرض از InnoDB بهره می‌برد. ممکن است به دلیل اینکه دیتابیس شما قدیمی باشد یا افزونه خاصی را نصب کرده باشید دیتابیس شما هم اکنون با انجین MyISAM فعال باشد. برای فهمیدن این موضوع مراحل زیر را دنبال کنید.

وارد phpMyAdmin شوید و در پایگاه داده mySQL خود کلیک کنید.

آموزش تبدیل موتور ذخیره سازی MySQL از MyISAM به InnoDB

همانطور که در تصویر بالا مشاهده میکنید در بخش Type نوع انجین هر کدام از ردیف داده های شما را نمایش می دهد.

چطور به InnoDB مهارجت کنیم؟

راه های زیادی برای این کار وجود دارد. مانند نصب اسکریپت یا استفاده از نرم افزار notepad++ اما استاندارد ترین راه و امن ترین نوع آن استفاده از phpmyadmin است.

هشدار: حتما از دیتابیس خود بک آپ تهیه کنید. انجام این فرایند ممکن است به دیتابیس شما آسیب بزند.

مرحله اول: ابتدا روی ردیفی که میخواید انجین آن را تغییر دهید کلیک کنید.

آموزش تبدیل موتور ذخیره سازی MySQL از MyISAM به InnoDB

مرحله دوم: از منوی تنظیمات بالا روی Operations کلیک کنید.

آموزش تبدیل موتور ذخیره سازی MySQL از MyISAM به InnoDB

مرحله سوم: از باکس Table option میتوانید ساختار ردیف دیتابیس خود را تغییر دهید. مطابق تصویر زیر از بخش storage engine به InnoDB تغییر دهید.

آموزش تبدیل موتور ذخیره سازی MySQL از MyISAM به InnoDB

نکته: در صورتی که وردپرس شما آخرین نسخه باشد به صورت خودکار از این پس تمامی جداول را با انجین InnoDB خواهد ساخت.

تغییر انجین دیتابیس چقدر سرعت سایت من را افزایش میدهد؟

این موضوع ممکن است متفاوت باشد. اما در تست هایی که ما انجام دادیم 20 درصد افزایش سرعت مشاهده شد.

آیا لازم است قبل از انجام این کار بک آپ تهیه کنیم؟

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

نظرت‌رو بگو
4 دیدگاه
  1. آواتار علی شمس
    علی شمس می‌گوید

    سلام
    مقاله خوبی بود
    ممنون

    1. آواتار سروش احمدی
      سروش احمدی می‌گوید

      سلام
      ممنون لطف دارید

  2. آواتار بهرام
    بهرام می‌گوید

    سلام
    ممنون از آموزش مفیدتون
    من روی جدول نرخ مالیات که هیچ سطری هم نداره و خالی هست این ارور رو میگیرم
    MySQL said: Documentation
    #1709 – Index column size too large. The maximum column size is 767 bytes.

    1. آواتار بهرام
      بهرام می‌گوید

      با دستور
      ALTER TABLE table_name DROP INDEX column_name;
      ایندکس های که نوع داده VARCHAR و utf8mb4_unicode_ci هست رو از ایندکس خارج میکنیم درست میشه. چراش رو نمیدونم حقیقت چون اونقدری مسلط نیستم به msql اینم سرچ کردم تست کردم جواب داد.