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

همانطور که در تصویر بالا مشاهده میکنید در بخش Type نوع انجین هر کدام از ردیف داده های شما را نمایش می دهد.
چطور به InnoDB مهارجت کنیم؟
راه های زیادی برای این کار وجود دارد. مانند نصب اسکریپت یا استفاده از نرم افزار notepad++ اما استاندارد ترین راه و امن ترین نوع آن استفاده از phpmyadmin است.
هشدار: حتما از دیتابیس خود بک آپ تهیه کنید. انجام این فرایند ممکن است به دیتابیس شما آسیب بزند.
مرحله اول: ابتدا روی ردیفی که میخواید انجین آن را تغییر دهید کلیک کنید.

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

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

نکته: در صورتی که وردپرس شما آخرین نسخه باشد به صورت خودکار از این پس تمامی جداول را با انجین InnoDB خواهد ساخت.
تغییر انجین دیتابیس چقدر سرعت سایت من را افزایش میدهد؟
این موضوع ممکن است متفاوت باشد. اما در تست هایی که ما انجام دادیم 20 درصد افزایش سرعت مشاهده شد.
آیا لازم است قبل از انجام این کار بک آپ تهیه کنیم؟
بله – حتما از دیتابیس خود بک آپ تهیه کنیم چون احتمال خرابی بسیار بالا می باشد.
سلام
مقاله خوبی بود
ممنون
سلام
ممنون لطف دارید
سلام
ممنون از آموزش مفیدتون
من روی جدول نرخ مالیات که هیچ سطری هم نداره و خالی هست این ارور رو میگیرم
MySQL said: Documentation
#1709 – Index column size too large. The maximum column size is 767 bytes.
با دستور
ALTER TABLE table_name DROP INDEX column_name;
ایندکس های که نوع داده VARCHAR و utf8mb4_unicode_ci هست رو از ایندکس خارج میکنیم درست میشه. چراش رو نمیدونم حقیقت چون اونقدری مسلط نیستم به msql اینم سرچ کردم تست کردم جواب داد.