پاکسازی دیتابیس وردپرس و کاهش حجم Database
پاکسازی دیتابیس وردپرس یکی از مهمترین کارهایی است که برای افزایش سرعت سایت و کاهش فشار روی هاست باید بهصورت دورهای انجام شود. با گذشت زمان، اطلاعات اضافی زیادی مثل Revision ها، دیدگاههای اسپم، transient های منقضی شده، autoload های سنگین و دادههای باقیمانده از افزونههای حذف شده داخل دیتابیس ذخیره میشوند و همین موضوع میتواند باعث کند شدن سایت، افزایش TTFB و حتی سنگین شدن پنل مدیریت وردپرس شود.
در این آموزش قرار است هم روشهای دستی پاکسازی Database وردپرس را یاد بگیرید و هم نحوه کار با افزونه WP Sweep را بهصورت کامل بررسی کنیم تا بتوانید بدون آسیب زدن به اطلاعات سایت، دیتابیس وردپرس را سبک تر و مرتب تر کنید.
نکته : ویدیو بالا در مورد آموزش کامل حذف اتولودهای اضافه از دیتابیس میباشد که یکی از مهم ترین اقدامات پاکسازی دیتابیس وردپرس هست این ویدیو بخشی از دوره آموزش افزایش سرعت سایت است.
آنچه در این مقاله میخوانید
چرا دیتابیس وردپرس سنگین میشود؟
دیتابیس وردپرس بهمرور زمان و با فعالیت طبیعی سایت دائما در حال بزرگتر شدن است. هر نوشته، دیدگاه، تنظیمات افزونه، اطلاعات کاربران، کش موقت و حتی تغییرات کوچک داخل پنل مدیریت در دیتابیس ذخیره میشود. به همین دلیل اگر سایت برای مدت طولانی پاکسازی نشود، حجم زیادی از اطلاعات غیرضروری داخل Database باقی میماند و عملکرد سایت را تحت تاثیر قرار میدهد.
یکی از مهمترین دلایل نیاز به پاکسازی دیتابیس وردپرس این است که بسیاری از افزونهها بعد از حذف شدن، همچنان دادهها و جداول خود را داخل دیتابیس نگه میدارند. علاوه بر این، وردپرس بهصورت خودکار از نوشتهها Revision ذخیره میکند و بعضی افزونهها نیز هزاران transient و option اضافی ایجاد میکنند که به مرور باعث سنگین شدن wp_options میشود.
وقتی دیتابیس بیش از حد شلوغ شود، سرور برای اجرای Query ها زمان بیشتری نیاز دارد. این موضوع معمولا باعث افزایش TTFB، کند شدن پنل مدیریت وردپرس، مصرف بیشتر CPU هاست و حتی کاهش سرعت لود صفحات سایت میشود. در سایتهای فروشگاهی یا سایتهایی که افزونههای زیادی دارند، این مشکل معمولا شدیدتر است.
در جدول زیر مهمترین عوامل سنگین شدن دیتابیس وردپرس را مشاهده میکنید:
| عامل | توضیح |
|---|---|
| Revision ها | ذخیره نسخههای متعدد از نوشتهها و برگهها |
| Auto Draft | پیشنویسهای خودکار بدون استفاده |
| Spam Comments | دیدگاههای اسپم و حذف نشده |
| Transient ها | دادههای موقت منقضی شده افزونهها |
| Autoload های سنگین | option هایی که در هر بار لود سایت فراخوانی میشوند |
| جداول اضافی | جدولهای باقیمانده از افزونههای حذف شده |
| Overhead | فضای اضافه و ناکارآمد داخل جداول دیتابیس |
به همین دلیل پاکسازی دیتابیس وردپرس فقط برای کاهش حجم Database نیست، بلکه یکی از مهمترین اقدامات برای حفظ سرعت و سلامت کلی سایت محسوب میشود. در ادامه، هر کدام از این موارد را بهصورت کامل بررسی میکنیم و یاد میگیرید چطور آنها را بهصورت اصولی پاکسازی کنید.
تاثیر دیتابیس روی سرعت سایت و TTFB
وردپرس برای نمایش صفحات سایت دائما از دیتابیس اطلاعات دریافت میکند. اگر دیتابیس وردپرس شلوغ و سنگین باشد، سرور زمان بیشتری برای پردازش درخواستها نیاز دارد و همین موضوع باعث افزایش TTFB و کند شدن سایت میشود.
وجود autoload های سنگین، transient های اضافی و جدولهای ناکارآمد میتواند فشار زیادی روی دیتابیس وارد کند و سرعت لود صفحات و حتی پنل مدیریت وردپرس را کاهش دهد. به همین دلیل پاکسازی دیتابیس وردپرس یکی از کارهای مهم برای حفظ سرعت سایت محسوب میشود.
چه چیزهایی باعث سنگین شدن دیتابیس وردپرس میشوند؟
با گذشت زمان، اطلاعات زیادی داخل دیتابیس وردپرس ذخیره میشود که بخش قابل توجهی از آنها اصلا ضروری نیستند. این دادههای اضافی علاوه بر افزایش حجم Database، باعث کند شدن Query ها، افزایش TTFB و فشار بیشتر روی هاست میشوند. در ادامه مهمترین عوامل سنگین شدن دیتابیس وردپرس را بررسی میکنیم.
Revision ها
وردپرس بهصورت خودکار از نوشتهها و برگهها نسخههای مختلف ذخیره میکند که به آن Revision گفته میشود. این قابلیت برای بازگردانی تغییرات مفید است، اما اگر تعداد Revision ها زیاد شود، جدول wp_posts به شدت سنگین میشود؛ مخصوصا در سایتهایی که محتوای زیادی منتشر میکنند.
Auto Draft ها
وردپرس هنگام نوشتن محتوا بهصورت خودکار پیشنویس موقت ایجاد میکند تا اطلاعات از بین نروند. بسیاری از این Auto Draft ها بعدا بدون استفاده داخل دیتابیس باقی میمانند و به مرور حجم اضافی ایجاد میکنند.
دیدگاههای اسپم و Trash
کامنتهای اسپم و دیدگاههایی که حذف شدهاند معمولا برای مدت طولانی داخل دیتابیس باقی میمانند. اگر سایت شما نظرات زیادی دریافت میکند، این بخش میتواند حجم قابل توجهی از دیتابیس را اشغال کند.
Transient های منقضی شده
بعضی افزونهها برای ذخیره اطلاعات موقت از transient استفاده میکنند. مشکل اینجاست که بسیاری از افزونهها بعد از منقضی شدن transient ها، آنها را بهدرستی حذف نمیکنند و همین موضوع باعث سنگین شدن جدول wp_options میشود.
Autoload های سنگین
یکی از مهمترین دلایل کند شدن وردپرس، option هایی هستند که با autoload ذخیره میشوند. این دادهها در هر بار لود سایت از دیتابیس خوانده میشوند. اگر افزونهها حجم زیادی autoload ایجاد کنند، مصرف RAM و زمان پاسخ سرور افزایش پیدا میکند.
جداول اضافی افزونههای حذف شده
بعضی افزونهها بعد از حذف شدن، جدولهای خود را از دیتابیس پاک نمیکنند. این جدولها معمولا بدون استفاده باقی میمانند و فقط باعث افزایش حجم Database میشوند.
Overhead جداول دیتابیس
Overhead فضای اضافهای است که بعد از حذف یا ویرایش اطلاعات داخل جداول ایجاد میشود. زیاد شدن Overhead باعث ناکارآمد شدن جداول و کاهش سرعت پردازش دیتابیس میشود.
دادههای یتیم یا Orphan Data
گاهی بعد از حذف نوشتهها، محصولات یا افزونهها، بعضی اطلاعات مرتبط همچنان داخل دیتابیس باقی میمانند. این دادههای بدون استفاده که به آنها Orphan Data گفته میشود، به مرور باعث شلوغ شدن دیتابیس وردپرس خواهند شد.
قبل از شروع حتما بکاپ بگیرید
قبل از هرگونه پاکسازی دیتابیس وردپرس، حتما از دیتابیس سایت بکاپ تهیه کنید. حذف اطلاعات اضافی معمولا مشکلی ایجاد نمیکند، اما اگر به اشتباه بخشی از دادههای مهم حذف شود، تنها راه بازگردانی سایت استفاده از بکاپ خواهد بود.مخصوصا هنگام پاکسازی دستی دیتابیس یا اجرای Query های SQL، داشتن نسخه پشتیبان کاملا ضروری است. حتی اگر از افزونه WP Sweep استفاده میکنید، باز هم بهتر است قبل از شروع یک بکاپ کامل از Database تهیه کنید.
برای بکاپ گرفتن میتوانید از طریق phpMyAdmin خروجی دیتابیس را دانلود کنید یا از افزونههایی مثل UpdraftPlus استفاده کنید. این کار فقط چند دقیقه زمان میبرد اما میتواند از بروز مشکلات جدی جلوگیری کند.
پاکسازی دیتابیس با افزونه WP Sweep
اگر نمیخواهید همه مراحل پاکسازی دیتابیس وردپرس را بهصورت دستی انجام دهید، افزونه WP Sweep یکی از بهترین گزینهها برای شروع است. این افزونه سبک، ساده و کاربردی است و میتواند بخش زیادی از اطلاعات اضافی دیتابیس را تنها با چند کلیک پاکسازی کند.

مزیت مهم WP Sweep این است که برخلاف بسیاری از افزونههای مشابه، از توابع داخلی وردپرس استفاده میکند و همین موضوع باعث میشود عملکرد مطمئنتری داشته باشد. به همین دلیل این افزونه بین متخصصان وردپرس و بهینهسازی سرعت سایت محبوبیت زیادی دارد.
افزونه WP Sweep چه مواردی را پاکسازی میکند؟
افزونه WP Sweep میتواند بسیاری از دادههای اضافی دیتابیس را پاکسازی کند؛ از جمله:
- Revision های اضافی نوشتهها
- Auto Draft ها
- دیدگاههای اسپم و حذف شده
- transient های منقضی شده
- orphan metadata
- optimize table و حذف overhead جداول
این موارد معمولا بخش زیادی از حجم اضافی دیتابیس وردپرس را تشکیل میدهند و پاکسازی آنها میتواند باعث سبکتر شدن Database و کاهش فشار روی هاست شود.
اما یک نکته بسیار مهم وجود دارد؛ افزونه WP Sweep و تقریبا هیچ افزونه دیگری، پاکسازی تخصصی autoload ها را انجام نمیدهند. در حالی که autoload های سنگین یکی از اصلیترین دلایل افزایش TTFB و کند شدن وردپرس هستند. به همین دلیل بررسی و پاکسازی autoload ها باید بهصورت دستی انجام شود تا بتوانید option های سنگین و غیرضروری را دقیق شناسایی کنید. در ادامه مقاله، آموزش کامل پاکسازی autoload های وردپرس را مرحلهبهمرحله بررسی میکنیم.
آموزش کار با افزونه WP Sweep
بعد از نصب و فعالسازی افزونه WP Sweep، از منوی «ابزارها» وارد بخش Sweep شوید. در این صفحه، تمام بخشهایی که قابل پاکسازی هستند نمایش داده میشود. در مقابل هر بخش، تعداد آیتمهای اضافی و دکمه Sweep قرار دارد. با کلیک روی این دکمه، افزونه اطلاعات غیرضروری آن قسمت را پاکسازی میکند.

بهتر است ابتدا از بخشهای کمخطرتر شروع کنید؛ مثل:
- Revision ها
- Auto Draft ها
- Spam Comments
- Transient ها
همانطور که در تصویر مشخص است در بخش تنظیمات هر بخش جدا از بخش های دیگر، قابل پاکسازی است. بعنوان مثال از قسمت اول میتوانید مطالب و پست های غیر ضروری را پاکسازی کنید.
در ادامه آن نظرات موجود در سایت را میتوانید در دیتابیس بهینه کنید. همانطور که اشاره کردیم نظرات تایید نشده، هزرنامه، حذف شده یا تکراری، قابل مشاهده و پاکسازی است. اگر روی Sweep کلیک کنید، حذف خواهند شد.

همچنین ممکن است بخش های دیگری نیز برای پاکسازی وجود داشته باشد و این به سایت تان برمیگردد. اگر میخواهید حجم پایگاه داده خود را باز هم کاهش دهید، میتوانید از این دو گزینه استفاده کنید:
- Option Sweep
- Database Sweep
با انتخاب گزینه اول میتوانید حجم پایگاه داده خود را باز هم کاهش دهید.

بعنوان مثال تصویر بالا نشان میدهد که پایگاه داده در این سایت 10 درصد بهینه سازی میشود. شما هم این موارد را بر روی سایت خود میتوانید مشاهده کنید و اگر نیاز به بهینه سازی وجود دارد آن را انجام دهید. بعد از آن مشاهده خواهید کرد که تا چه میزان فضای دیتابیس شما کاهش پیدا کرده است.
اگر هم بخواهید به صورت جمعی همه اطلاعات اضافی دیتابیس تان را پاکسازی کنید، با استفاده از گزینه Sweep All این امکان فراهم گردیده است.
آموزش کامل بررسی و حذف Autoload های اضافی
autoload ها یکی از مهمترین بخشهای دیتابیس وردپرس هستند که تاثیر مستقیمی روی سرعت سایت و TTFB دارند. بسیاری از سایتهای کند وردپرسی در ظاهر مشکل خاصی ندارند، اما وقتی جدول wp_options بررسی میشود، حجم بالایی از autoload های غیرضروری دیده میشود که باعث افزایش مصرف RAM و کند شدن لود اولیه سایت شدهاند. به همین دلیل پاکسازی دیتابیس وردپرس بدون بررسی autoload ها کامل نیست و این بخش باید با دقت بررسی شود.
autoload چیست؟
وردپرس بعضی از option ها را با مقدار autoload = yes ذخیره میکند. این یعنی اطلاعات موردنظر در هر بار لود سایت بهصورت خودکار از دیتابیس خوانده میشوند. این قابلیت برای option های ضروری مفید است، اما مشکل زمانی ایجاد میشود که افزونهها حجم زیادی داده غیرضروری را بهصورت autoload ذخیره کنند.
چرا autoload باعث کندی سایت میشود؟
هرچقدر حجم autoload بیشتر باشد، وردپرس در هر درخواست باید داده بیشتری از دیتابیس بخواند. این موضوع باعث افزایش TTFB، مصرف بیشتر RAM و کند شدن سایت میشود. در بسیاری از سایتها، افزونههای کش، صفحهسازها، افزونههای آمار یا بعضی افزونههای قدیمی بیشترین حجم autoload را ایجاد میکنند.
چطور حجم autoload ها را بررسی کنیم؟
برای بررسی حجم کل autoload ها وارد phpMyAdmin شوید و دیتابیس سایت را انتخاب کنید. سپس وارد جدول wp_options شوید تب SQL را باز کنید و داخل کادر Query زیر را اجرا کنید:
SELECT total_bytes, CONCAT(
CASE
WHEN total_bytes < 1024 THEN CONCAT(total_bytes, ' Bytes')
WHEN total_bytes < 1048576 THEN CONCAT(ROUND(total_bytes / 1024, 2), ' KB')
ELSE CONCAT(ROUND(total_bytes / 1048576, 2), ' MB')
END
) AS human_readable
FROM (
SELECT SUM(LENGTH(option_value)) AS total_bytes
FROM wp_options
WHERE autoload = 'yes'
) AS sizes;

این Query حجم تقریبی autoload ها را برحسب کیلو بایت نمایش میدهد. طبق تصویر زیر :

بهصورت کلی:
🟢 کمتر از 1MB = مناسب
🟡 بین 1 تا 3MB = نسبتا سنگین
🟠 بیشتر از 3MB = نیاز به بررسی جدی
آموزش شناسایی لیست سنگین ترین اتولودها
برای پیدا کردن سنگینترین autoload ها، Query زیر را اجرا کنید:
SELECT
option_name, ( CASE WHEN LENGTH ( option_value ) < 1000000
THEN
CONCAT( CEILING ( LENGTH ( option_value ) / 1024.0 ), 'KB' )
ELSE
CONCAT( FORMAT ( LENGTH ( option_value ) / 1048576.0, 'N3' ), 'MB' )
END) AS autoload_data_size
FROM wp_options WHERE autoload='yes' ORDER BY LENGTH ( option_value ) DESC
این Query بزرگترین option های autoload را نمایش میدهد و معمولا بهراحتی مشخص میشود کدام افزونه حجم زیادی از دیتابیس را اشغال کرده است.

حذف autoload های اضافی
بعد از شناسایی اتولودهای غیرضروری، میتوانید Option هایی که مربوط به افزونه های حذف شده و بلااستفاده هست را حذف کنید. توجه داشته باشید فقط مواردی که مطمئن هستید مربوط به افزونه خاصی است که حذف شده یا غیرفعال هست را حذف کنید چون حذف اشتباه بعضی option ها ممکن است باعث اختلال در افزونه یا قالب شود.
چه option هایی را نباید حذف کنیم؟
option های مربوط به:
- قالب فعال
- افزونههای مهم سایت
- تنظیمات اصلی وردپرس
- ووکامرس
- افزونههای امنیتی و کش
معمولا نباید بدون بررسی حذف شوند. اگر مطمئن نیستید یک option مربوط به چه افزونهای است، بهتر است قبل از حذف نام آن را در گوگل جستجو کنید یا ابتدا از دیتابیس بکاپ بگیرید.
حجم مناسب autoload در وردپرس چقدر است؟
عدد دقیقی وجود ندارد، اما در بیشتر سایتها بهتر است حجم autoload کمتر از 1 تا 2 مگابایت باشد. هرچقدر این مقدار کمتر باشد، وردپرس سریعتر لود میشود و فشار کمتری روی سرور وارد خواهد شد.
سوالات متداول در مورد پاکسازی دیتابیس وردپرس
هر چند وقت یکبار باید دیتابیس وردپرس را پاکسازی کنیم؟
این موضوع به میزان فعالیت سایت بستگی دارد، اما برای بیشتر سایتهای وردپرسی بهتر است ماهی یکبار پاکسازی دیتابیس وردپرس انجام شود. سایتهای فروشگاهی یا سایتهایی که محتوای زیادی منتشر میکنند، معمولا به پاکسازی منظمتری نیاز دارند.
آیا پاکسازی دیتابیس وردپرس خطرناک است؟
اگر بدون بکاپ گرفتن یا بدون آشنایی با بخشهای دیتابیس اقدام به حذف اطلاعات کنید، احتمال بروز مشکل وجود دارد. به همین دلیل همیشه قبل از پاکسازی دیتابیس وردپرس از سایت خود نسخه پشتیبان تهیه کنید.
آیا افزونه WP Sweep امن است؟
بله، افزونه WP Sweep یکی از افزونههای شناختهشده و سبک برای پاکسازی دیتابیس است و از توابع داخلی وردپرس استفاده میکند. البته بهتر است قبل از استفاده، از دیتابیس بکاپ تهیه کنید.
آیا افزونه WP Sweep میتواند autoload ها را پاکسازی کند؟
خیر، افزونه WP Sweep پاکسازی تخصصی autoload ها را انجام نمیدهد. بررسی و حذف autoload های اضافی معمولا باید بهصورت دستی انجام شود.
آیا Optimize Table باعث حذف اطلاعات میشود؟
خیر، عملیات Optimize Table فقط ساختار جدول را مرتب میکند و overhead های اضافی را کاهش میدهد. این کار معمولا باعث حذف اطلاعات مهم سایت نمیشود.
آیا پاکسازی دیتابیس روی سرعت سایت تاثیر دارد؟
بله، پاکسازی دیتابیس وردپرس میتواند باعث کاهش TTFB، سبکتر شدن پنل مدیریت و کاهش فشار روی هاست شود؛ مخصوصا در سایتهایی که دیتابیس بزرگی دارند.
بهترین روش پاکسازی دیتابیس وردپرس چیست؟
بهترین روش ترکیبی از استفاده از افزونه WP Sweep و پاکسازی دستی بخشهای مهم مثل autoload ها است. چون بعضی از مشکلات دیتابیس فقط با بررسی دستی قابل شناسایی هستند.

نظرات :