نحوه حذف کوئری‌های سنگین برای بهبود سرعت سایت

🚀 نحوه حذف کوئری‌های سنگین برای بهبود سرعت سایت

📌 کوئری سنگین چیست؟

کوئری‌های سنگین (Heavy Queries) درخواست‌های دیتابیس هستند که زمان زیادی برای پردازش نیاز دارند. این کوئری‌ها معمولاً حجم زیادی از اطلاعات را واکشی می‌کنند یا بهینه‌سازی نشده‌اند.

🔴 مشکلات کوئری‌های سنگین:

  • کندی بارگذاری صفحات
  • افزایش مصرف منابع سرور
  • تأثیر منفی روی تجربه کاربری و سئو

🔎 چطور کوئری‌های سنگین را شناسایی کنیم؟

1️⃣ استفاده از افزونه‌های آنالیز دیتابیس در وردپرس

افزونه‌هایی مثل:

  • 🔍 Query Monitor (رایگان)
  • 📊 Debug Bar

با این افزونه‌ها می‌توانید: ✅ کوئری‌های کند را شناسایی کنید
✅ زمان اجرای هر کوئری را ببینید
✅ فایل و تابعی که کوئری را اجرا کرده، پیدا کنید


2️⃣ مانیتورینگ سرور

اگر سرور اختصاصی دارید، با دستورات زیر می‌توانید کوئری‌های سنگین MySQL را پیدا کنید:

bash
SHOW FULL PROCESSLIST;

این دستور کوئری‌های در حال اجرا و مدت زمان اجرای آن‌ها را نشان می‌دهد.


3️⃣ فعال کردن Slow Query Log

در تنظیمات MySQL می‌توانید لاگ کوئری‌های کند را فعال کنید تا ببینید کدام درخواست‌ها بیشتر از حد مجاز طول می‌کشند.

bash
slow_query_log = 1
long_query_time = 2

💡 یعنی کوئری‌هایی که بیشتر از 2 ثانیه زمان می‌برند، ثبت می‌شوند.


✂️ روش‌های حذف و بهینه‌سازی کوئری‌های سنگین

1️⃣ حذف کوئری‌های غیرضروری

🔹 بررسی کنید کدام کوئری‌ها واقعاً ضروری هستند.
🔹 توابع و افزونه‌هایی که درخواست‌های غیرضروری می‌فرستند را غیرفعال یا جایگزین کنید.
🔹 از افزونه‌های بهینه مثل WP Optimize یا Perfmatters برای غیرفعال کردن ویژگی‌های غیرضروری استفاده کنید.


2️⃣ بهینه‌سازی کوئری‌های ضروری

🔸 استفاده از Indexes در جداول دیتابیس
🔸 شکستن کوئری‌های بزرگ به کوئری‌های کوچک‌تر
🔸 انتخاب فقط فیلدهای موردنیاز (به جای SELECT *)
🔸 حذف JOINهای اضافی


3️⃣ کش کردن نتایج کوئری

🔹 استفاده از Object Cache یا Transient API برای ذخیره نتایج کوئری‌های پرمصرف
🔹 استفاده از افزونه‌های کش حرفه‌ای مثل:

  • LiteSpeed Cache
  • WP Rocket

4️⃣ حذف کوئری‌های مربوط به Heartbeat API

🔸 وردپرس به‌صورت پیش‌فرض هر چند ثانیه درخواست‌هایی برای Heartbeat API ارسال می‌کند.
🔸 اگر این قابلیت برای شما لازم نیست، می‌توانید با کد زیر آن را غیرفعال کنید:

php
add_action('init', function() {
wp_deregister_script('heartbeat');
});

5️⃣ حذف کوئری‌های مربوط به جستجوی سایت

🔹 اگر سایت شما دارای بخش جستجوی سنگین است، از ElasticSearch یا Algolia استفاده کنید.
🔹 یا با این کد، قابلیت جستجوی پیش‌فرض وردپرس را غیرفعال کنید:

php
function disable_search_query($query, $error = true) {
if (is_search()) {
wp_redirect(home_url());
exit;
}
}
add_action('parse_query', 'disable_search_query');

🛠️ جدول خلاصه روش‌ها

روش توضیحات سطح تخصص
شناسایی با Query Monitor نمایش کوئری‌ها داخل پیشخوان مبتدی
بررسی Slow Query Log ثبت کوئری‌های کند در سرور متوسط
حذف افزونه‌های پرمصرف شناسایی و حذف افزونه‌های مشکل‌ساز مبتدی
کش کردن نتایج کوئری کاهش درخواست‌های تکراری متوسط
بهینه‌سازی دیتابیس بهبود ساختار جداول و ایندکس‌ها پیشرفته
غیرفعال کردن Heartbeat کاهش درخواست‌های Ajax اضافی متوسط

🎯 جمع‌بندی

✅ شناسایی کوئری‌های سنگین، قدم اول برای بهینه‌سازی سرعت سایت است.
✅ بعضی از کوئری‌های سنگین به‌خاطر افزونه‌های بی‌کیفیت یا درخواست‌های غیرضروری ایجاد می‌شوند که حذف آن‌ها ساده‌ترین راه‌حل است.
✅ برای سایت‌های بزرگ و پرترافیک، حتماً از کش کردن هوشمند و بهینه‌سازی دیتابیس استفاده کنید.

بدون دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *