حل مشکل سنگین بودن حجم جدول wp_options در وردپرس
یکی از مشکلاتی که اکثر کاربران وردپرسی با آن ممکن است مواجه شوند سنگین شدن بیش از حد جدول wp_options است، که معمولا به دلیل کد نویسی نادرست و یا استفاده برنامه نویس از این جدول برای ذخیره سازی دیتا به وجود می آید، در این آموزش روش های بهینه سازی table سنگین wp_options را زیر ذرهبین خواهیم برد.
پادکست صوتی این مقاله
میتوانید نسخه صوتی این آموزش را گوش دهید و در زمان صرفه جویی کنید
تمامی کد های ذکر شده در پادکست در پایین قرار داده شده اند.
جدول wp_options در وردپرس چیست؟
جدول wp_options شامل انواع مختلفی از دیتای سایت های وردپسی مانند موارد زیر میباشد :
- آدرس سایت، آدرس صفحه اصلی، ایمیل مدیریت، دسته بندی پیشفرض، تعداد پست در صفحات، فرمت زمان و …

جداول wp_options شامل فیلد های زیر می باشد:
- option_id
- option_name
- option_value
- autoload

یکی از نکات مهمی که باید درباره جدول wp_options در وردپرس بدانید فیلدی به نام autoload است. این فیلد دارای مقدار «yes» یا «no» است. این مقدار تعیین میکند که داده مربوطه توسط تابع wp_load_alloptions بارگذاری شود یا نه. دادههایی که دارای autoload هستند در هر بار بارگذاری صفحات سایت وردپرسی به صورت خودکار بارگذاری میشوند. همانطور که پیشتر آموزش دادیم چگونه میتوان برخی اسکریپتها را از بارگذاری در تمام صفحات سایت غیرفعال کرد، اینجا هم همان منطق برقرار است. ویژگی autoload بهصورت پیشفرض برای توسعهدهندگان روی «yes» تنظیم شده است اما از نظر تئوری لازم نیست هر افزونهای دادههای خود را در تمام صفحات بارگذاری کند.
تاثیر افزونهها در سنگین شدن جدول
مشکلی که ممکن است سایتهای وردپرسی با آن مواجه شوند زمانی است که حجم زیادی از دادههای autoload شده در جدول wp_options ذخیره شود. این مشکل معمولاً به دلایل زیر اتفاق میافتد:
- دادهها توسط یک افزونه بهصورت خودکار (autoload) بارگذاری میشوند در حالیکه در واقع باید مقدار autoload برای آنها روی «no» تنظیم شود. یک مثال خوب در این زمینه افزونههای فرم تماس هستند. آیا واقعاً لازم است این افزونه دادههای خود را در تمام صفحات بارگذاری کند؟ پاسخ کوتاه است، خیر!
- افزونهها یا قالبهایی از سایت وردپرسی حذف شدهاند، اما تنظیمات آنها همچنان در جدول wp_options باقی ماندهاند. این موضوع میتواند باعث شود دادههای autoload شده غیرضروری در هر درخواست فراخوانی شوند.
- توسعهدهندگان افزونه و قالب دادههای خود را بهجای استفاده از جداول اختصاصی در جدول wp_options ذخیره میکنند. برای این موضوع نظرات مختلفی وجود دارد، چراکه برخی توسعهدهندگان ترجیح میدهند افزونههایی استفاده کنند که جداول جداگانهای ایجاد نمیکنند. با این حال جدول wp_options نیز برای نگهداری هزاران ردیف طراحی نشده است.
میزان مناسب برای دادههای autoload شده چقدر است؟ این مقدار متغیر است اما در حالت ایدهآل بهتر است حجم آن بین ۳۰۰ کیلوبایت تا ۱ مگابایت باشد. اگر این مقدار به حدود ۳ تا ۵ مگابایت یا بیشتر نزدیک شود احتمالاً مواردی وجود دارند که باید بهینهسازی یا از حالت autoload خارج شوند. و اگر این مقدار از ۱۰ مگابایت بیشتر شود باید فوراً به آن رسیدگی کرد. البته این به این معنا نیست که لزوماً باعث بروز مشکل میشود، اما نقطه شروع خوبی برای بررسی و بهینهسازی است.
راهکارهای سبکسازی جدول wp_options
یکی از روش های بهینه سازی جدول wp_options استفاده از کوئری هایی است که به وسیله آن بتوانیم داده های اضافی این جدول را شناسایی و حذف کنیم.
دستور SQL زیر را در phpMyadmin وارد کنید این دستور داده های wp_options را از کم به زیاد لیست خواهد کرد و شما می توانید داده های اضافی را شناسایی و حذف کنید.
|
1 |
SELECT option_id, option_name, option_value, LENGTH(option_value) as length FROM wp_options ORDER BY length, option_name; |
استفاده از افزونه Autoload Checker
افزونه Autoload Checker یک ابزار کاربردی برای وردپرس است که به شما امکان میدهد وضعیت دادههای autoload را در جدول wp_options پایگاه دادهی سایت خود بررسی کنید. این دادهها اطلاعاتی هستند که در هر بار بارگذاری صفحه چه مورد نیاز باشند و چه نباشند بهصورت خودکار بارگیری میشوند. در نتیجه اگر تعداد افزونههای نصبشده زیاد باشد این موضوع میتواند باعث کندی و افت عملکرد سایت شود.
نکتهی مهم اینجاست که افزونه Autoload Checker صرفاً نقش نظارتی دارد و هیچ تغییری در دادههای پایگاه داده ایجاد نمیکند. اطلاعاتی که این افزونه در اختیار شما قرار میدهد شامل حجم کل دادههای autoload و فهرستی از سنگینترین ورودیهای ثبتشده است که بر اساس حجم مرتب شدهاند.
با استفاده از این گزارشها میتوانید بهسادگی تشخیص دهید که کدام افزونهها یا قالبها بیشترین تأثیر را بر حجم دادههای خودکار دارند. این بینش به شما کمک میکند تصمیم بگیرید آیا نیاز به بهینهسازی یا حتی حذف برخی از این منابع دارید یا خیر.
نتیجهگیری
در این آموزش سعی کردیم سریعترین و عملی ترین روش برای حل مشکل سنگین شدن دیتابیس را بررسی کنیم، شما همچین می توانید از طریق آموزش حذف جداول افزونههای حذف شده دیتابیس اقدام به حذف دیتای اضافه دیتابیس کنید و سایت خود را هر چه بیشتر بهینه سازی کنید.





