دیتابیس وردپرس تمام محتوای سایت وردپرسی شما را ذخیره میکند. منظور از محتوای وردپرس صرفاً پست وبلاگ نیست؛ بلکه زحمت ذخیرهسازی برگهها، کامنتها، لینکها، ورودی فرمها، نمونه کارها و… نیز روی دوش این بزرگوار است. دیتابیس وردپرس به خوبی از پس این ذخیرهسازیها برمیآید. اما گاهی هم نیاز دارد کمی نفس بگیرد و بارش را سبک کند. اینجاست که نیاز به بهینه سازی دیتابیس وردپرس، خودش را با کمی کندی و عوارض آن نشان میدهد.
چرا باید بهینه سازی دیتابیس وردپرس را به روتین تبدیل کنیم؟
اگر بهطور منظم وبسایت خود را بهروزرسانی میکنید (منطقاً تمام وبسایتهای فعال این کار را میکنند) پایگاه دادهٔ شما در طول زمان بزرگ و بزرگتر میشود. و خدا نکند آنقدر بزرگ بشود که پرفورمنس را تحت تاثیر قرار بدهد.
چرا که یک دیتابیس سنگین، سرور را برای زمان طولانیتری درگیر بازیابی دادهها میکند. به این ترتیب اگر بهینهسازی دیتابیسها نشود، سایت شما را با کندی مواجه میکنند و باعث میشوند بهتدریج امتیاز پرفورمنس را از دست بدهید.
با حذف دادههای غیر ضروری، می توانید کارایی پایگاه داده خود را بهبود بخشید و سرعت لود صفحات وب را بالا ببرید. به عبارت دیگر میتوان گفت این بهینهسازی باعث افزایش منابع هاست و افزایش سرعت وردپرس میشود.
اصلاً پایگاه داده وردپرس چطور پر و کند میشود؟
جواب ساده است: با گذشت زمان! در طول زمان دادههای کوچک از منابع مختلف روی هم انباشته میشوند که به خیلیهایشان نیازی ندارید. منبع تولید این دادههای اضافی در وردپرس معمولاً یکی از این سه جا است:
۱. اسپم کامنتهایی که دستی به سر و رویشان نکشیدهاید!
از آنجایی که کامنتهای زیر پستهای سایت نوعی از تعامل به حساب میآیند، ممکن است دلتان نیاید جور دیگری به ماجرا نگاه کنید. اما باید بگوییم که بخش بزرگی از کامنتهای دریافتی یک سایت وردپرسی اسپم هستند. خیلی از کامنتها حاوی لینکهای مخربی هستند که از سمت رقبای کلاهسیاه یا برای تبلیغ برندهای دیگر ارسال میشوند. به این نوع کامنتها اسپم گفته میشود. اسپم کامنتها علاوه بر این که باعث میشوند کامنتهای اصلی مخاطبان واقعی شما دیده نشوند؛ دیتابیس شما را هم کند میکنند.
داستان وقتی غمانگیزتر میشود که ارسال کنندهها از ربات کمک بگیرند و با سرعتی باور نکردنی شما را پیش مخاطبانتان خراب کنند. و البته دیتابیس وردپرس را هم با کندی مواجه کنند.
- راه حل:
بهترین راهکار برای مقابله با کامنت اسپم محدود کردن دسترسی نظرات است. برای این کار کافی است از پیشخوان وردپرس وارد Settings > Discussion شوید. سپس بر اساس صلاحدید خودتان یکی از روشها را برگزینید. مثلاً امنترین راه این است که دسترسی کامنت را فقط به افرادی که در سایت شما ثبت پروفایل انجام دادهاند بدهید. یا برخی واژهها را به بلک لیست کامنت خود اضافه کنید.
اگر همین حالا هم اسپمرها را شناسایی کردهاید از همین بخش دسترسی حسابشان را به کامنتها ببندید.
۲. وسواس بیش از حد در پستها کار دستتان میدهد
وردپرس به عنوان یک سامانه مدیریت محتوا وظیفه دارد که همواره بهترین نسخه از پستها و برگههای سایت شما را به نمایش بگذارد. که خب اتفاقاً خیلی هم به این وظیفه مقید است و تقریباً هر ۶۰ ثانیه تمام نسخههای حین ویرایش را ذخیره میکند تا بتوانید به تمام انتخابهایتان دسترسی داشته باشید.
بنابراین خواه ناخواه همیشه رونوشتهای زیادی از هر برگه و نوشته وجود دارد که احتمالاً به خیلیهایشان هرگز نیازی پیدا نخواهید کرد. حذف دستی این رونوشتها گرچه زمانبر اما اثربخش است.
- راه حل:
برای محدود کردن تعداد ویرایشهای وردپرس میتوانید اسکریپت زیر را به فایل wp-config.php اضافه کنید:
define(“WP_POST_REVISIONS”، ۱۰)
در این اسکریپت عدد ۱۰ به عنوان سقف ذخیره تعداد رونوشت درنظر گرفته شدهاست. مثلاً اگر نسخههای ذخیره شده از سایت شما به ۱۱ برسد، قدیمیترین نسخه حذف خواهد شد. بنابراین اگر به رونوشتهای کمتر یا بیشتری نیاز دارید میتوانید عدد را مطابق دلخواه خود جایگذاری کنید.
اگر از مشترکان سرویس هاست وردپرس لیموهاست هستید، نیازی به طی مراحل بهینه سازی دیتابیس ندارید. کافی است با ارسال یک تیکت درخواست خود را با تیم پشتیبانی درمیان بگذارید و ظرف چند دقیقه نتیجه بگیرید.
۳. Transientها منقضی شدهاند!
Transients ابزارهایی هستند که به توسعه دهندگان اجازه می دهند اطلاعات مرتبط را در پایگاه داده وردپرس را برای مدت زمان مشخصی نگه دارند. این عملکرد بارگذاری سرور را بین سایت شما و هر سایتی که به آن متصل هستید بهینه می کند.
یک نوع متداول Transients با افزونه های شبکههای اجتماعی استفاده می شود. وردپرس از این موارد برای بهروز نگه داشتن تعداد اشتراکگذاریها برای پستها استفاده میکند. یعنی بدون اینکه مجبور باشید هر بار که این کار را انجام میدهید، ارتباط خود را با سایت شبکههای اجتماعی مجدداً تأیید اعتبار کنید، به روزرسانی داده انجام میشود. به این ترتیب سرعت سایت شما را به طور چشمگیری کاهش می دهد و این Transients به سرعت بخشیدن به این روند کمک می کند.
Transients ممکن است همیشه به درستی عمل نکند، به خصوص هنگامی که تغییرات قابل توجه در وب سایت ایجاد میشود یا یک افزونه جدید نصب میکنید. بنابراین بهتر است بتوانید آنها را مدیریت کنید به جای اینکه منتظر بمانید تا منقضی شوند.
وردپرس موارد منقضی شده را حذف نمی کند، بنابراین بهتر است عادت کنید هر از گاهی آنها را از پایگاه داده خود پاک کنید. داشتن یک جدول wp_options بسیار بزرگ می تواند باعث کندی سایت شما شود، بنابراین حذف Transients منقضی شده بسیار مفید است. خب بیایید ببینیم بهینه سازی پایگاه دادهٔ وردپرس چطور انجام میشود.
آشنایی با ساختار دیتابیس وردپرس
همانطور که در بخش قبل اشاره شد، دیتابیسها خواهناخواه رو به رشد هستند. بنابراین بایستی دادههای اضافی را از آنها پاک کرد تا بهترین عملکرد را داشته باشند. برای این که بتوانیم دادههای اضافی را تشخیص بدهیم باید ابتدا روش ذخیرهسازی را بشناسیم.
مروری سریع بر ۱۲ جدول دیتابیس وردپرس
به صورت پیشفرض دادههای محتوای سایت وردپرسی در ۱۲ جدول ذخیره میشود. اما ممکن است برخی قالبها و پلاگینها یا حتی همکاران شما به صورت دستی جدولهای دیگری نیز به پایگاه داده اضافه کنند. این ۱۲ جدول عبارتاند از:
- wp_commentmeta : این جدول متادیتای کامنتهای سایت شما را ذخیره میکند.
- wp_comments : این جدول خود کامنتها و نظرات را ذخیره میکند.
- wp_links : لینکهای بلاگرول را ذخیره میکند.
- wp_options : گزینه های تعریف شده در قسمت تنظیمات مدیریت را ذخیره میکند.
- wp_postmeta –متادیتای پستهای سایت را ذخیره میکند.
- wp_posts : داده ها را برای پستها، برگهها و سایر انواع پست سفارشی ذخیره می کند.
- wp_terms : برچسبها و دستهبندیهای را برای پستها و لینکها ذخیره می کند.
- wp_termmeta : اطلاعات اصطلاحی به نام متادیتا را ذخیره می کند
- wp_term_relationships : ارتباط بین پستها و دستهها و برچسبها و ارتباط بین لینکها و دستههای لینک را ذخیره میکند.
- wp_term_taxonomy – توضیحی در مورد طبقه بندی (دسته، لینک یا برچسب) مورد استفاده در جدول wp_terms ذخیره می کند.
- wp_usermeta – متادیتای کاربران را ذخیره می کند.
- wp_users – کاربران شما را ذخیره می کند.
اگر نیاز دارید بیشتر دربارهٔ جدولهای اصلی دیتابیس وردپرس بدانید، در صفحه توضیحات دیتابیس وردپرس در سایت اصلی این سامانهٔ مدیریت محتوا توضیحات کاملی درج شدهاست. اما کار ما برای بهینه سازی پایگاه داده وردپرس با این جدولها تمام است.
نحوه بهینه سازی دیتابیس وردپرس
با ورود به دیتابیس وردپرس خود خواهید دید که تمام ردیفها بر اساس دو فاکتور مرتب شدهاند: size و overhead. مفهوم اندازه به خوبی واضح است، اما منظور از overhead چیست؟ برای پاسخ به این سوال یک فرضیه را به خاطر بسپارید و به بخش بعدی بروید:
فرض کنید که صاحب یک فروشگاه هستید. در بخش لبنیات فروشگاه تعدادی یخچال صنعتی دارید که با لبنیات و بستنی پر شدهاند و با فروش آنها درآمد کسب میکنید. حالا فرض کنید تولید لبنیات در شهر شما متوقف شدهاست و بنابراین یخچالها خالی ماندهاند. روشن ماندن این یخچالها علاوه بر این که به کسب درآمدتان کمکی نمیکند، هزینهٔ برق فروشگاه را هم افزایش میدهند. پس بهتر است خاموش شوند.
-
حالا Overhead دیتابیس یعنی چه؟
در دیتابیس هم همین اتفاق میافتد. زمانی که یک یا چند ردیف را از جدولهای دیتابیس حذف میکنید، MYSQL جای خالیشان را نگه میدارد تا بعداً با ردیف جایگزین پر شود. اما احتمالاً دادههای جدید با این ردیفها خیلی هم جفت و جور نباشند. پس صرفاً فضای خالی غیرکاربردی به نام overhead هستند که بهتر است حذف شوند تا هزینهٔ کاهش سرعت را روی دستتان نگذارند.
آموزش بهینه سازی دیتابیس وردپرس
برای حذف فضاهای خالی و دادههای غیرضروری دیتابیس چندین راه پیش پایتان وجود دارد. اگر کمی فنیتر هستید و حوصلهٔ کار کردن با دستورها را هم دارید میتوانید به روش بهینه سازی دستی پایگاه داده مراجعه کنید.
اما اگر به دنبال پلاگین وردپرس برای بهینه سازی دیتابیس هستید، این هشدار را در ذهن داشته باشید که استفاده از این نوع افزونهها، آسیبپذیری از طریق حمله به دیتابیس را افزایش میدهد. نقص در امنیت هاستینگ نیز این حمله را دو چندان میکند.
بهینه سازی دیتابیس در وردپرس با افزونه
اگر چندان به بخش فنی وردپرس آگاه نیستید یا بیم دارید که با ویرایش فایلهای ضروری و جدولها موجب مشکلات بزرگتری شوید، میتوانید از روش پلاگین بهینه سازی دیتابیس استفاده کنید. ما هشدارها را پیش از این دادهایم و در بخشهای بعدی راهنمای کامل و سادهای از بهینه سازی دیتابیس ارائه کردهایم. بنابراین اگر به تمام ابعاد آگاه هستید، همین حالا شروع کنیم:
بهترین افزونه بهینه سازی دیتابیس وردپرس چیست؟
در بین تمام گزینههای موجود سه پلاگین بهینه سازی دیتابیس وردپرس بهترین عملکرد را دارند. برخی از این افزونهها با یک کلیک میتوانند سرعت سایت شما را به طرز چشمگیری بهبود ببخشند. در این بخش با سه افزونهٔ WP-Optimize ،WP-Sweep و WP Rocketآشنا خواهیم شد و کار با آنها را خواهیم آموخت.
۱. نحوه بهینه سازی پایگاه داده وردپرس با افزونه WP-Optimize
WP-Optimize یکی از محبوب ترین افزونه های بهینه سازی پایگاه داده وردپرس است. بیش از ۹۰۰۰۰۰ نصب فعال دارد. این پلاگین بسیار ساده است و دارای ویژگی تنظیم با یک دکمه است. کافی است بر روی Select Run Optimization کلیک کنید. سپس کار پاکسازی دیتابیس وردپرس را شروع کنید.
-
تنظیمات افزونه WP Optimize
شما می توانید از WP-Optimize برای پاکسازی دیتابیس وردپرس از نسخههای ارسال شده ، پیشنویسهای قدیمی، موارد تأیید نشده، کامنت اسپم یا حذف شده، گزینههای گذرا منقضی شده، ردیابی و پینگ بک استفاده کنید. همچنین جزئیات جدول پایگاه داده، از جمله اندازهٔ دادهها ، اندازه شاخص و overhead را برای هر یک از جداول پایگاه داده نمایش می دهد.
۲. بهینه سازی دیتابیس وردپرس با افزونه WP-Sweep
WP-Sweep همچنین یکی دیگر از افزونه های عالی با موارد زیر است. در حال حاضر بیش از ۱۰۰۰۰۰ نصب فعال دارد. پس از نصب افزونه ، به Tools> Sweep بروید و به تنظیمات افزونه می روید.
WP-Sweep یک پلتفرم معتبر کاربر را ارائه می دهد و برای هر کار ، جارو یا جزئیات دو گزینه به شما ارائه می دهد. شما می توانید تجدید نظرهای جابجایی ، پیش نویس های ذخیره شده به صورت خودکار ، پست های حذف شده ، نظرات ، کاربران ، گزینه ها و جداول بهینه سازی را انجام دهید. اگر می خواهید تمام کارها را انجام دهید ، All را در پایین صفحه فشار دهید.
۳. بهینه سازی دیتابیس وردپرس با پلاگین WP Rocket
WP Rocket همچنین دارای یک رابط کاربری معتبر کاربر عالی و تنظیم سریع است. این بخش به بخش هایی برای پست ها ، نظرات ، گذرا و پاکسازی پایگاه داده تقسیم می شود.
همچنین می توانید پاکسازی های برنامه ریزی شده را تنظیم کنید تا به طور خودکار هر روز ، هفته یا ماه اجرا شود. برای انجام تمیز کردن دستی ، وظایفی را که می خواهید اجرا کنید انتخاب کنید و Save و Optimize را فشار دهید و WP Rocket شروع به بهینه سازی پایگاه داده وردپرس می کند.
-
تنظیمات پلاگین WP-Rocket
یکی از ویژگی های عالی در مورد WP-Rocket ، تمیز کردن اتوماتیک است که به شما امکان می دهد تنظیمات پایگاه داده خود را یک بار تنظیم کنید ، و نیازی به بازگشت و بررسی آن نیست. این کار به طور کارآمد در پس زمینه اجرا می شود و پایگاه داده شما را سازمان یافته نگه می دارد.
مراحل بهینه سازی دیتابیس وردپرس (بهصورت دستی)
۱. بهینهسازی جدولهای دیتابیس
بهینه سازی جدولهای دیتابیس با حذف همین فضاهای خالی و با استفاده از دستور SQL OPTIMIZE TABLE آغاز میشود. به طور مثال اگر در نظر دارید این بهینهسازی را روی جدول لینکها بدهید، بایستی کوئری را به صورت زیر اجرا کنید:
OPTIMIZE TABLE ‘wp_links’
اما راه سادهتری هم وجود دارد. نیازی نیست حتماً دستور SQL را اجرا کنید. اگر به phpMyAdmin دسترسی دارید می توانید از منوی کشویی اصلی بهینهسازی جدول را انجام بدهید. کافی است روی کادر «Check All» کلیک کنید، «Optimize table» را از منوی کشویی انتخاب کنید و سپس بر روی دکمه «Go» کلیک کنید.
۲. تعمیر جدولهای خراب در پایگاه داده وردپرس
وردپرس ابزاری دارد که به شما اجازه میدهد جدولهایی که در دیتابیس شما به هر دلیلی خراب شدهاند را بازیابی کنید. برای استفاده از ابزار بهینه سازی، ابتدا باید این خط را به فایل wp-config.php وب سایت خود اضافه کنید:
define( 'WP_ALLOW_REPAIR', true );
وقتی خط بالا را به wp-config.php اضافه کردید و فایل را ذخیره کردید، میتوانید به ابزار بهینهسازی در http://www.yourwebsite.com/wp-admin/maint/repair.php دسترسی پیدا کنید. این ابزار به طور پیشفرض تلاش میکند تمام خرابیهایی که در تمام جدولهای وردپرس وجود دارد را اصلاح کند. اما گاهی ممکن است اسکریپت نتواند برخی از جدولها را تعمیر کند. اگر چنین اتفاقی افتاد، کافیاست یک بار دیگر ابزار را اجرا کنید.
با انتخاب “Repair and Optimize Database” وردپرس بهینهسازی را روی جدولهایی که از قلم افتادهاند آغاز میکند. برای اجرای ابزار بهینهسازی وردپرس، نیازی به ورود به سیستم ندارید.
تنها نقطه ضعف این روش این است که هر کسی می تواند به اسکریپت شما دسترسی داشته باشد و آن را اجرا کند. به همین دلیل، پس از استفاده از ابزار بهینهسازی، باید خط WP_ALLOW_REPAIR را از فایل wp-config.php خود حذف کنید.
۳. بهینهسازی دیتابیس وردپرس با کاهش اسپم کامنت
اگر وب سایت شما در بخش نظرات اسپم زیادی دریافت می کند، احتمالاً آثارش را روی کندی سایت دیدهاید. به طور پیش فرض، نظرات هرزنامه به طور خودکار پس از ۳۰ روز حذف می شوند. که خب در همان سی روز هم میتوانند صدها یا حتی هزاران ردیف را در جدول wp_comments شما اشغال کنند. Akismet راهحل موثری است و کاربرد سادهای دارد. کافی است پس از نصب و فعالسازی به سراغ لیست اسپمهایی که تشخیص داده بروید و روی گزینهٔ “Empty Spam” کلیک کنید.
۴. بهینه سازی دیتابیس وردپرس با تغییر ویرایش پست
همانطور که بالاتر توضیح دادیم وردپرس تمایل دارد تمام نسخههای ویرایش شده پستهای شما را نگهدارد. اگر اطمینان دارید که نسخههایی که آفلاین ویرایش شدهاند را وارد وردپرس میکنید؛ میتوانید ذخیره خودکار ویرایش را غیر فعال کنید.برای کاهش تعداد ویرایش هایی که ذخیره می شوند، کافی است کد زیر را به فایل wp-config.php خود اضافه کنید.
define( ‘WP_POST_REVISIONS’, 2 );
با افزودن کد زیر به فایل wp-config.php می توان ویرایش های پست را به طور کامل غیرفعال کرد:
define( ‘WP_POST_REVISIONS’, false );
بهتر است ویرایشها را به طور کامل نبندید. بالاخره انسان است و امکان اشتباه کردناش! بهتر است یکی دو نسخه به صورت اتوماتیک ذخیره شود. ویژگی ذخیره خودکار وردپرس هر ۶۰ ثانیه یک ذخیره خودکار از مقاله شما را ذخیره می کند. این فاصله را می توان با افزودن کد زیر به فایل wp-config.php تغییر داد:
define( 'AUTOSAVE_INTERVAL', 180 ); // Seconds
پاسخ به سوالات پرتکرار
منظور از بهینه سازی دیتابیس وردپرس چیست؟
به زبان خیلی ساده، شما پایگاهدادههای سایت وردپرسیتان را مرتب میکنید. فایل و دادههای اضافی را دور میریزید و جا را برای دادههای ضروری باز میکنید.
آیا استفاده از افزونه wp optimize باعث افزایش سرعت سایت میشود؟
بله. هر افزونهای که برای پاکسازی دیتابیس وردپرس استفاده میکنید روی سرعت سایت شما تاثیر مثبت میگذارد.
آیا منظور از پاکسازی دیتابیس وردپرس همان ریست پایگاه داده است؟
خیر. با انجام بهینه سازی شما دادههای اصلی را حذف نمیکنید و منابع هاست را برای آنها بازتر میکنید.
سخن پایانی
در این مقاله یک آموزش بهینه سازی دیتابیس وردپرس را خواندید. اگر نقاطی برای شما ابهام برانگیز است که ما به آنها نپرداختهایم، میتوانید از بخش نظرات زیر همین پست از ما سوال بپرسید و پاسخ بگیرید. همچنین میتوانید تجربیات خود را از همین بخش با سایر کاربران به اشتراک بگذارید. فراموش نکنید که برای باخبر شدن از جوایز و تخفیفهای ما میتوانید صفحه اینستاگرام لیموهاست را دنبال کنید.
همینجوری به همین کشکی و راحتی ؟!
خود این افزونه ها هشدار میدهند که قبل از اعمال تغییرات بهینه سازی پایگاه داده ، یک بک آپ بگیرید. بعد شما توی این پست خودتون یک اشاره نکردین این موضوع رو؟!!
یک مبتدی میزنه پایگاه داده اش رو پاک میکنه بدبخت میشه که …
سلام حسن عزیز. قبل از هر تغییری در وبسایت لازم هست که بکآپ گرفته بشه و مخاطب این پست ـ که مدتی هست وبسایت رو مدیریت میکنه و بنابراین نیاز به بهینهسازی پیدا کرده ـ احتمالاً به این مسأله آگاه هست. اما به قول شما شاید بد نباشه یه یادآوری به ابتدای پست اضافه کنیم. ممنون از شما 🙏