جدول wp_postmeta یکی از جداول پیشفرض وردپرس است که اطلاعات مختلفی را در خود ذخیره میکند. سیستم مدیریت محتوای وردپرس محتوای مرتبط با پست را در دو جدول به نامهای wp_posts و wp_postmeta ذخیره میکند.
جدول wp_postmeta چیست؟
جدول پست wp_posts شامل تمام جزییات مرتبط به پست، نویسنده، تاریخ، کلمه عبور، وضعیت و … میشود. جدول متای wp_postmeta دادههای اطلاعاتی اضافی مربوط به پستها را در خود نگه میدارد.
عامل افزایش حجم جدول wp_postmeta
هر متاباکس اضافی که در ویرایشگر پست وردپرس خود مشاهده میکنید دادههایی را به جدول wp_postmeta اضافه خواهد کرد. در زیر برخی از معمولترین این موارد را مشاهده میکنید.
- افزونههای سئو مانند متاباکسهای افزونه Rankmath
- افزونههای بررسی مانند WP Review
- پوستههای پریمیوم که متاباکسهایی را برای تنظیمات لایهبندی و دیگر ویژگیها اضافه میکنند.
- فیلدهای سفارشی ساخته شده توسط افزونهها و پوستهها.
اگرچه امکان غیرفعال کردن متاباکسهای ویرایشگر گوتنبرگ وردپرس را دارید اما هنوز هم متاباکسها ردیفهای خود را در جدول wp_postmeta خواهند ساخت.
بررسی اندازه جدول wp_postmeta
به صورت پیشفرض جداول در MySQL یا MariaDB با پسوند _wp ایجاد میشوند. برای مثال، جدول محتوای پست به صورت wp_posts و متای پست به صورت wp_postmeta ذخیره خواهد شد.
دقت داشته باشید که اگر طی مرحله نصب وردپرس خود پیشوند جداول وردپرس را تغییر داده باشید، پیشوند متفاوتی را در پایگاهداده وردپرس خود مشاهده خواهید کرد.
- به پیشخوان مدیریت پنل هاست خود مراجعه کنید.
- بر روی گزینه phpMyAdmin کلیک کنید.
- پایگاهدادهای که وردپرس خود را بر روی آن نصب کردهاید را انتخاب کنید و بر روی ستون Size کلیک کنید.
- بزرگترین جدول را در ابتدی لیست جداول پایگاهداده وردپرس خود مشاهده خواهید کرد.
همانطور که در تصویر بالا نیز مشاهده میکنید، جدول پست ۲۶.۶ مگابایت حجم به خود اختصاص داده است در حالیکه جدول wp_postmeta حجمی در حدود ۱۰۹.۸ مگابایت دارد.
ساختار جدول wp_postmeta در وردپرس
جدول متای پست یا wp_postmeta چهار فیلد با این ساختار دارد: شناسه متا، شناسه پست، کلید متا و مقادیر متا. برای اینکه دریابید که کدام افزونه ردیفهایی را در جدول ایجاد کرده است بایستی به ستون meta_key توجه کنید.
یافتن علت حجم زیاد جدول wp_postmeta
بسیار مهم است که علت حجم بالای جدول wp_postmeta را بیابیم. همانطوریکه پیشتر نیز توضیح داده شد دلایل زیادی برای این اتفاق وجود دارد.
- افزونهها، متاباکسهایی را به ویرایشگر پست وردپرس شما اضافه میکنند؛ مانند کاری که افزونههای سئو انجام میدهند.
- افزونههای شبکههای اجتماعی که موارد سفارشی را به هر پست اضافه میکنند.
- افزونههای انجمن گفتگو مانند bbPress و افزونههای فروشگاهی مانند ووکامرس.
- پوستهها که متاباکسهایی را برای لایهبندی، پسزمینه و تنظیمات مربوط به فرمت اضافه میکنند.
به خاطر داشته باشید که پایگاه داده با اندازه بزرگ مسالهای مانند کندی وبسایت را در پی خواهد داشت.
چگونه افزونههای مختلف، حجم جدول wp_postmeta را افزایش میدهند؟
افزونههای زیادی هستند که ردیفهایی را به جدول wp_postmeta اضافه میکنند.
افزونههای review یا بررسی
یکی از مهمترین دلایلی که افزونههای بررسی Review باعث ایجاد این مساله میشوند، افزودن بیش از ۳۰ ردیف برای هر شناسه پست است. مساله بزرگتر اما این است که این افزونهها ردیفهایی را به هر پست بدون توجه به استفاده از review در آن پست اضافه میکنند.
افزونههای سئو
همین مساله نیز در خصوص افزونههای سئو مانند یوست یا RankMath وجود دارد. به هر روی داشتن توضیحات و عنوان سئو برای هر پست قابل درک و فهم است. اما در خصوص نصب افزونههای سئو بر روی وبسایت و ایجاد متاباکسهای زیاد در پست خود دقت بیشتری داشته باشید.
افزونههای فروشگاهی و انجمنهای گفتگو
در صورتیکه میخواهید پایگاهدادهای بهینه داشته باشید همواره سعی کنید که انجمن گفتگو و فروشگاه خود را با وبسایت خبری خود ادغام نکنید. اینکار باعث کاهش سرعت عملکرد وبسایت و افزایش حجم جداول مختلف از جمله جدول wp_posts و wp_postmeta خواهد شد.
برای مثال، افزونه ووکامرس صدها هزار ردیف به جدول wp_postmeta برای دادههای تماس مشتریان، کشور و جزییات سفارشات اضافه خواهد کرد.
پستهای مرتبط و افزونههای شبکه اجتماعی
افزونههای مربوط به ایجاد بخش پستهای مرتبط و شبکههای اجتماعی با ایجاد کوئریهای بزرگ بار سنگینی را به پایگاهداده وبسایت شما تحمیل کرده و باعث کندی وبسایت شما خواهند شد.
بهترین حالت ایجاد پست مرتبط با کمک قابلیتهای خود پوسته مورد استفاده شماست.
پوستههای پریمیوم با متاباکسهای زیاد در ویرایشگر وردپرس
حتی پوستههای کم حجم اما پریمیوم نیز علاقه زیادی به افزودن متاباکسهای زیاد به ویرایشگر وردپرس دارند. این متاباکسها ردیفهایی را به هر پست اضافه خواهند کرد و بر حجم پایگاهداده خواهند افزود.
تصاویر بسیار زیاد
دلیل دیگر برای رشد فزاینده جدول wp_postmeta افزودن تصاویر بسیار زیاد به وبسایت است. وردپرس، متادادههای ضمیمه، جزییات فشردهسازی و جزییات alt tag تصاویر را در جدول wp_postmeta اضافه میکند.
افزونههای فشردهسازی تصویر مانند WP Smush نیز بر بحرانیتر شدن شرایط کمک میکنند. با فعال شدن چنین افزونههایی، جزییات بیشتری به جدول wp_postmeta افزوده خواهد شد.
فیلدهای سفارشی یا custom field
اغلب افزونههای اشاره شده در بالا فیلدهای سفارشی را به وبسایت شما اضافه خواهند کرد. وردپرس این فیلدهای سفارشی را در جدول post_metadata اضافه خواهد کرد. مساله اما این است که حتی با حذف و پاک کردن افزونه، این فیلدهای سفارشی هنوز هم در پایگاهداده وردپرس شما وجود دارند و حذف نخواهند شد.
برای رفع این مساله بایستی به صورت دستی این ردیفها را پاک کنید.
بکآپ پیش از تمیزکاری جدول wp_postmeta
به مانند همیشه پیش از هر اقدام اساسی بر روی وبسایت خود، از آن بکآپ کاملی داشته باشید تا در تمام شرایط راهحل بازگشت به وضعیت پیشین را داشته باشید.
پاکسازی جدول wp_postmeta
پس از اینکه دانستید wp_postmeta چیست و چه اطلاعاتی را در خود نگه میدارد نوبت پاکسازی این جدول رسیده است.
- افزونههایی که ردیفهایی را به هر پست وردپرس شما اضافه میکنند را حذف کنید.
- از پوستههای کاربردی و ساده برای نمایش محتوای خود استفاده کنید.
حذف ردیفهای ایجاد شده بدون استفاده در جدول wp_postmeta
افزونههایی برای بهینهسازی پایگاهداده مانند WP Optimize و WP Rocket وجود دارند که به شما اجازه پاکسازی پایگاهداده را میدهند. بهرحال هیچ یک از این افزونهها ردیفهای جدول wp_postmeta را از جدول وردپرس شما حذف نخواهند کرد. برای اینکار بایستی مقدار meta_key را به صورت مستقیم در جدول پست متا بررسی کنید.
از کوئری یا پرسوجوی زیر برای فیلتر و یافتن تعداد ردیفهای موجود برای یک کلمه کلیدی مشخص در جدول متا استفاده کنید. کوئری زیر تمام ردیفهایی که توسط افزونه WP Smush ایجاد شده را به شما نمایش میدهد.
SELECT * FROM wp_postmeta WHERE `meta_key` LIKE ‘%smpro%’
همچنین میتوانید از کوئری برای یافتن ردیفهای مربوط به ووکامرس استفاده کنید.
زمانیکه ردیفهای بلااستفاده را در دیتابیس خود یافتید، زمان حذف آنها فرا رسیده است. از کوئری زیر برای حذف تمام ردیفهایی که شامل کلمه کلیدی review هستند استفاده کنید. از کلمه کلید مناسب و مدنظر خود به جای عبارت review برای حذف ردیفها در جدول wp_postmeta استفاده کنید.
DELETE FROM `wp_postmeta` WHERE `meta_key` LIKE ‘%review%’;
اگر احساس میکنید که زمان تغییر پوسته یا افزونه فرارسیده است بنابراین حتما اینکار را انجام دهید. با اینکار از شدت افزایش حجم پایگاه داده وردپرس خود و در نتیجه کندی سرعت آن خواهید کاست.
دیدگاهتان را بنویسید