سرفصلهای پست
امروز قصد داریم تا نگاهی به جدول wp_options در پایگاه داده وردپرس خود کنیم. به طور کلی این منطقه شامل کلیه عملکردهای وردپرس و پایگاه داده است که در بیشتر اوقات به آن توجه نمیشود.
با توجه به بارگیری های خودکار داده ها در پوسته ها و افزونه های وردپرس توجه نکردن به این جدول (مخصوصا در وب سایتهای پربازدید و قدیمی) میتواند باعث کندی صفحهها و همچنین کاهش سرعت سایت و در نتیجه سئو وب سایت شما شود.
نکاتی که در پایین به شما آموزش میدهیم را بررسی کنید تا یاد بگیرید که چطور جدول wp_options را بررسی، عیبیابی و پاکسازی کنید.
جدول wp_options حاوی تمامی نوع داده مربوط به عملکرد وب سایت وردپرسی شما میباشد ، دادههایی مانند :
موارد زیر در جدول wp_options وجود دارد که یکی از آنها را که در عملکرد وب سایت نقش بسیاری دارد را پررنگ کردیم:
یکی از مهمترین مواردی که باید در رابطه با wp_options بدانید ، اطلاع داشتن از بخشی به نام بارگیری خودکار (autoload) میباشد. این بخش شامل دو متغیر بله و خیر (yes or no) میباشد . که اساساً برای کنترل تابع wp_load_alloptions() استفاده میشود. دادههای Autoload ، دادههایی هستند که در هر صفحه وردپرسی شما اجرا میشوند.
دقیقا مانند غیرفعال کردن بارگیری بعضی از کدهای جاوااسکریپت در بعضی از صفحات وب سایت ، این بخش نیز به راحتی غیرفعال و فعال میشود.
به طور کلی ، دادههای Autoload به صورت پیشفرض در تمامی جداول بر روی “yes” تنظیم شدهاند که با توجه به اینکه بعضی از افزونهها نیازی نیست که در تمامی صفحات بارگیری شوند، توسط توسعه دهندگان بارگیری خودکارشان (autoload) غیرفعال میشود.
تجربه نشان داده است که وجود مقدار زیادی autoload در جدول wp_options میتواند باعث مشکل در وب سایت وردپرس شما شود.
در زیر به تعدادی از مشکلات معمول این دسته اشاره میکنیم:
حداکثر مجاز استفاده از autoload در یک وب سایت وردپرسی چقدر است؟ این مقدار میتواند در هر نوع وب سایتی متفاوت باشد ولی به طور کلی حجم دادهها معمولا بهتر است بین 300 کیلوبایت تا 1 مگابایت باشد.
هنگامی که شما شروع به بررسی جدول wp_options میکنید با حجمی حدود 3 تا 5 مگابایت مواجه میشوید که حتما چیزهایی را باید غیرفعال یا به طور کلی حذف کنید تا جدول و دادههای autoload بهینه سازی شوند. اگر هنگام بررسی با حجمی بیشتر از 10 مگابایت مواجه شدید ، باید بگویم که وضعیت بحرانی است و باید سریعا به بررسی جدول wp_options بپردازید. با این حال ، صحبت ما به این معنا نیست که اگر بررسی نکنید با مشکل مواجه میشوید ولی در کل اگر از حالا بهینه سازی را شروع کنید ، مشکلات آینده را پیشگیری کرده و همچنین سرعت سئو سایت تان را بهبود میبخشید.
اگر شما با مشکل کندی سرعت سایت روبهرو شدهاید، یکی از دلایلی که میتواند باعث این مشکل شده باشد ، وجود کوئریها و یا دادههای خودکار بارگیری شدهی یک افزونه قدیمی در جدول wp_options میباشد.
در زیر ما به شما نشان میدهیم که چگونه حجم دادههای ستون autoload در جدول wp_options را بررسی کنید و خیلی راحت اطلاعات اضافه را پاکسازی کنید.
اولین کاری که باید انجام دهید ، بررسی حجم داده های ستون autoload در حال مصرف در وب سایت وردپرسی شماست. برای اینکار ، وارد phpMyAdmin شوید.
از سمت چپ صفحه دیتابیس خود را انتخاب کنید و سپس وارد سربرگ SQL شوید .
بعد از انجام این کار دستور زیر را در بخش ادیتور وارد کنید و روی کلید GO کلیک کنید.
توجه داشته باشید ما نسبت به نصب پیشفرض وردپرس آموزش میدهیم و ممکن است شما به علت امنیت از پیشوندی غیر از wp_ استفاده کرده باشید که برای استفاده از دستور بالا میبایست پیشوندی که تعریف کردهاید را به جای wp_ وارد کنید.
حجم نمایش دادهشده از تابع autoload_size بر مبنای بایت می باشد. هر 1000 بایت برابر 1 کیلوبایت است و هر 1000 کیلوبایت برابر 1 مگابایت است . بنابراین در تصویر زیر حجم autoload_size وردپرس ما 249025 بایت به معنای 0.25 مگابایت میباشد. به طور کلی این مقدار حجم برای یک وب سایت ، حجمی ایدهآل است. اگر نتیجه بررسی شما نیز کمتر از 1 مگابایت بود نیازی نیست که نگران چیزی باشید.
برای تبدیل راحت بایت به مگابایت کافی است در گوگل عبارت “byte to mb” سرچ کنید تا در یک rich answers گوگلبتوانید تبدیل را انجام دهید.
بنابراین ، اگر حجم autoload_size وب سایت شما بیشتر از 1 مگابایت بود ، پیشنهاد میشود که حتما در ادامه این مقاله سئوراز را دنبال کنید تا سئو و سرعت وب سایت خود را از این طریق بهبود بخشید.
در نمونه زیر حجم autoload_size برابر 137724715 بایت معادل 137 مگابایت میباشد. که این مورد نشان دهنده وجود مشکل در یک وب سایت وردپرسی است.
شما همچنین میتوانید برای بررسی تخصصی تر از چندین دستور مختلف دیگر استفاده کنید.
در دستور زیر حجم autoload_size بر حسب کیلوبایت ، تعداد کوئری های autoload و 10 دستور autoload اول دیتابیس به شما نمایش داده میشود.
اگر شما از خدمات سایت New Relic استفاده میکنید ، میتوانید از آن برای پیدا کردن مشکلات کوئری های جدول wp_options استفاده کنید، در سربرگدیتابیس این وب سایت ، شما میتوانید فهرستی از جداول و کوئریهایی که پرمصرف هستند را به دست آورید، اگر روی یکی از گزینههای در فهرست کلیک کنید، در رابطه با کوئریها اطلاعات بیشتری کسب میکنید. در مثال زیر ، شما میتوانید تعداد انگشت شماری از دادههای autoload در جدول wp_options را مشاهده کنید.
با اطمینان میتوان گفت که با جستوجویی کوتاه متوجه خواهیم شد که حدودا داده های autoload شده این وب سایت حداقل 250 مگابایت است.
مرحله بعدی بهینه سازی ، مرتب کردن پر مصرف ترین ها در داده های autoload شده میباشد. شما میتوانید با دستور SQLزیر به سرعت لیست 10 داده پرمصرف را به دست آورید.
دوباره خاطر نشان کنیم که ممکن است شما پیشوند جداول وردپرس خود را هنگام نصب برای افزایش امنیت تغییر داده باشید و نامی جز wp_ گذاشته باشید، برای اینکه دستور بالا کار کند ، شما باید پیشوند جداول خود را جایگزین wp_ کنید.
مرحله بعدی ایجاد تغییرات در یک داده autoload شده پرمصرف میباشد.
همانطور که مشاهده میکنید در تصویر بالا در صدر لیست ریدایرکت 301 قرار دارد. این کوئری به احتمال بسیار زیاد مربوط به یک افزونه سئو وردپرس میباشد و وظیفه انتقال دادن صفحات را دارد. در این نوع موارد ، بهتر است که از افزونه برای انتقال صفحات استفاده نکنید و از ابزار پیشفرض وب سرور خود استفاده کنید.
دلیل این پیشنهاد چیست ؟ به این دلیل که استفاده از افزونههای رایگان وردپرس برای انجام عملیات انتقال صفحات ممکن است باعث ایجاد اختلال در عملکرد وب سایت شوند ، نیازمند اجرای کد های اضافی و منابع دارد و همچنین ایجاد کوئری autoload در وب سایت میباشد ، پیشنهاد میشود که از انتقال صفحات از طریق پلاگین استفاده نکنید.
در لیست مرتب شده بالا هشت جایگاه را کوئری wpurp_custom_tiplate_ اشغال کرده است. به طور کلی شما باید بتوانید نام این کوئری ها بیابید و همچنین به سرور برای دسترسی به نقاطی از پوستهها و افزونهها دسترسی داشته باشید. اگر دسترسی دارید ، از طریق دستور grep زیر بررسی کنید که آیا میتوانید این کوئریها را پیدا کنید یا خیر! شما همچنین میتوانید از طریق درگاههای SFTP نیز این رکوردها را بررسی کنید.
اگرچه در بعضی از سرورها این روش کارایی ندارد ، ما توانستیم با جستوجویی ساده در گوگل دریابیم که این کوئری به افزونهای تحت عنوان WP Ultimate Recipe مربوط است. این کوئری یک نمونه از غیرضروریترین کوئریهای autoload شده در وردپرس می باشد. بنابراین اگر چنین افزونهای در لیست افزونههای خود دارید سعی کنید که آن را به طور کامل حذف کنید. درواقع ، منظور ما پاکسازی کامل افزونه و هرچیزی که تا به حال در پایگاه داده تولید کرده است میباشد.
نوع بعدی دادههای پرمصرف به دادههای um_cache_userdata_# مربوط میشود، این دادهها را در چند سطر از لیست 10 داده پر مصرف autoload بالا در میبینید.
با توجه به اینکه چند داده um_cache_userdata_ در پایان لیست قرار دارند . ما به سرعت وارد MySQL خود شده و با دستور زیر 40 کوئری Autoload پر مصرف مربوط به این داده را فراخوانی میکنیم.
و یا مجموع تمامی مقادیر بالا مربوط به آن پیشوند :
اگر متوجه شدید که تعداد بیشتری کوئری وجود دارد ، دوباره مجبورید در بین افزونهها و پوستهها جستوجو کنید و دستور grep مخصوص آن را اجرا کنید.
با توجه به جستوجویی که ما انجام دادید دریافتیم که این داده مربوط میشود به افزونه معروف Ultimate Miber و پس از جستوجویی کوتاه در گوگل راهی ساده برای حل مشکلات این افزونه نیز پیدا کردیم. سعی کنید قدرت جستوجو و تحقیق با گوگل را تمرین کنید تا به راحتی بتوانید نیازهای خود را در یک سرچ هدفمند پیدا کنید.
در جستوجو متوجه شدیم که برای حل مشکلات این افزونه چندین راه وجود دارد
گزینه دیگر برای پیداکردن گزینه های autoload کلیک روی کلید ویرایشگر است که میتواند لیست پوستهها/افزونهها و یا لیست وب سایت توسعه دهندگان آنها را به شما نمایش دهد.
یکی دیگر از گزینههای پرمصرف در بخش autoload استفاده مکرر Cronjobs ها میباشد. در این مورد، هر Cron ممکن است در این مسئله دخیل باشد، بنابراین هنگامی که ممکن است با کلیک روی کلید ویرایش وب سایت خراب شود ، باید چهکار کنیم ؟
برای مثال یک کوئری بسیار پرمصرف در وب سایت های وردپرسی کوئری Cron تحت عنوان do_pings میباشد که شما با یک جستوجوی ساده میتوانید نحوه پاکسازی این نوع کوئریها را پیدا کنید، اگر با نحوه کار و پاکسازی آن اشراف کامل را ندارید این مورد را نادیده بگیرید، یا قبل اجرا بک آپ در دیتابیس خود تهیه نمایید.
اگر تعداد زیادی از نمونههایی که در بالا به شما نشان دادیم را مشاهده کردید ، حالا وقت آن است که شروع به پاکسازی تمامی دادههای autoloaded کنیم. این نکته بسیار پیشنهاد میشود که تا جای ممکن سعی کنید که تعداد سطر های جدول wp_options شما در کمترین حالت ممکن باشد. لطفا سعی کنید قبل از هرگونه پاکسازی یا ایجاد تغییرات در پایگاه داده خود از آن نسخه پشتیبان تهیه کنید. اگر امکان این کار را ندارید ، پیشنهاد میکنیم یک متخصص حرفهای استخدام کنید.
مانند اولین نکتهای که به شما گفتیم ، برای پاکسازی جدول wp_options باید ابتدا وارد phpMyAdmin شوید. از منو سمت چپ پایگاه داده وردپرس خود را انتخاب کنید و وارد سربرگ SQL شوید. سپس دستور زیر را وارد کنید و روی کلید GO کلیک کنید.
این دستور به شما تمامی دادههای جدول wp_options را که در آنها autoload بر روی yes ذخیره شده است را نمایش میدهد.
با اسکرول کردن سطرها به ترتیب تمامی افزونههایی که در حال حاضر نصب یا درحال استفاده نیستند را مشاهده میکنید. به عنوان نمونه در این آموزش ما سطرهایی از افزونه Jetpack توسعه داده شده توسط وردپرس را بررسی میکنیم.
به عنوان مثال در حال حاضر وب سایت از افزونه Jetpack استفاده نمیکند.
همیشه بهتر است قبل از انجام هرکاری مستندات ارائه شده توسط توسعه دهندگان افزونهها را بررسی کنید ، گاهی اوقات در بعضی از مستندات توسعه دهنده میگوید که چطور جداول گذشته را پاکسازی کنید یا شاید گزینهای برای پاکسازی پایگاه داده در تنظیمات افزونه قرار داده بود. در بعضی اوقات بهتر است که ابتدا یک بار افزونه را حذف کنید و دوباره نصب کنید و سپس بررسی کنید که آیا کوئریهای پایگاه داده آن پاکسازی شده است یا خیر و سپس در صورتی که پاک شده بود آن را به طور کامل حذف کنید. با این حال ، در این مقاله ما به شما آموزش میدهیم که چطور به صورت دستی جداول را پاکسازی کنید.
برای مثال در دستور زیر ، ما تمامی دادههای autoload درون wp_options را که مخصوص افزونه jetpack هستند را فراخوانی میکنیم:
سپس روی کلید Select All کلیک میکنیم و روی Delete کلیک میکنیم تا به طور کامل جداول حذف شوند.
یا شما میتوانید به صورت مستقیم با دستور زیر اقدام به حذف کوئریها کنید:
حالا شما میتوانید با تغییر options_name به عنوان افزونه و یا پوسته قدیمی خود داده های autoload شده جدول را پاکسازی کنید.
اگر از یک حافظه کش استفاده میکنید، وردپرس رکوردهای گذرا یا transient را در خود جدول wp_options ذخیره میکند. به طور کلی این نوع رکوردها باید زمان انقضایی داشته باشند و در طول زمان پاکسازی شوند ، با اینکه ، همیشه اینطور نیست. در حال حاضر پایگاههای دادهای وجود دارد که بیشتر از هزاران رکورد transient قدیمی را در خود نگاه داشتهاند. باید توجه داشته باشید که رکوردهای transient به صورت پیشفرض به صورت خودکار بارگیری نمیشوند.
شما میتوانید از دستور زیر برای مشاهده رکوردهای transient خودکار بارگیری شده استفاده کنید :
به هر حال ، شما میتوانید از افزونه Transient Cleaner نیز برای پاکسازی دادههای گذرا از پایگاهداده خود استفاده کنید.
اگر پاکسازی دادههای جدول wp_options کافی نبود ، شما بهتر است که از یک شاخص برای autoload استفاده کنید.
این کار اساسا کمک میکند که جستوجوی شما کارآمدتر شود.
تیم تست به نام 10آپ ، چند آزمون مختلف بر روی جدول wp_options با رکوردهای autoload شده انجام داده است تا نمایش دهد که چطور با افزودن یک شاخص به کوئریهای wp_options میتوانیم در عملکرد وب سایت بهبود بخشیم.
افزونه Little Bizzy یک افزونه کاملا رایگان وردپرسی است که با اضافه کردن شاخصی برای autoload جدول wp_options با استفاده از wp_cron برای گزارش روزانه میتواند به شما بسیار کمک کند.