🗄️ نحوه فعالسازی کش کوئری در پایگاه داده (Query Cache)
کش کوئری (Query Cache) یکی از تکنیکهای مهم برای بهبود عملکرد پایگاه داده است. این قابلیت به پایگاه داده اجازه میدهد نتیجه کوئریهای پرکاربرد را در حافظه ذخیره کند و بهجای اجرای مکرر آنها، مستقیماً نتایج کششده را به کاربر ارائه دهد. در این مقاله، روش فعالسازی کش کوئری را در MySQL و وردپرس بررسی میکنیم.
کش کوئری چیست؟ 🔍
Query Cache قابلیتی است که وقتی یک کوئری اجرا شد، نتیجه آن را بهطور موقت در حافظه نگه میدارد. اگر همان کوئری دوباره اجرا شود (بدون تغییر در دادههای مرتبط)، نتیجه مستقیماً از حافظه بازگردانده میشود و نیازی به اجرای مجدد کوئری نیست.
مزایا: ✅ کاهش فشار روی سرور پایگاه داده
✅ افزایش سرعت بارگذاری صفحات
✅ کاهش زمان پاسخگویی به درخواستها
فعالسازی کش کوئری در MySQL ⚙️
بررسی وضعیت فعلی کش کوئری
ابتدا میتونی وضعیت فعلی Query Cache رو با این دستور بررسی کنی:
اگر نتیجه YES
باشه، یعنی قابلیت کش کوئری فعال هست.
فعالسازی کش کوئری در MySQL
برای فعالسازی، فایل پیکربندی MySQL (معمولاً my.cnf
یا my.ini
) رو ویرایش کن و این خطوط رو به بخش [mysqld]
اضافه کن:
توضیحات:
- query_cache_type: وضعیت کش (ON یعنی فعال)
- query_cache_size: مقدار حافظه اختصاص دادهشده به کش کوئری (مثال ۶۴ مگابایت)
- query_cache_limit: حداکثر اندازه هر کوئری کش شده (۲ مگابایت)
بعد از ذخیره، سرویس MySQL رو ریاستارت کن:
در لینوکس:
در ویندوز: با Services میتونی سرویس MySQL رو ریاستارت کنی.
بررسی عملکرد کش بعد از فعالسازی
بعد از فعالسازی میتونی وضعیت استفاده از کش رو ببینی:
برخی از پارامترها:
- Qcache_hits: تعداد کوئریهایی که از کش پاسخ داده شدند.
- Qcache_inserts: تعداد کوئریهایی که وارد کش شدند.
کش کوئری در وردپرس 🚀
وردپرس خودش بهطور پیشفرض کش کوئری داخلی ندارد. اما میتونی با استفاده از افزونهها یا بهینهسازیهای پایگاه داده، کش کوئری رو فعال کنی.
۱. استفاده از افزونههای کش (Cache Plugins)
افزونههایی مثل:
- WP Rocket
- LiteSpeed Cache
- W3 Total Cache
این افزونهها نه تنها کش کوئری، بلکه کش کامل صفحات و حتی کش Object را هم ارائه میکنند. در تنظیمات این افزونهها میتونی گزینه Database Cache رو فعال کنی که کوئریهای مکرر دیتابیس رو کش میکنه.
۲. استفاده از کش Object مستقل
کش Object در وردپرس میتونه بخشی از Query Cache رو پوشش بده. برای فعالسازی کش Object میتونی از افزونههایی مثل:
- Redis Object Cache
- Memcached Object Cache
استفاده کنی. این کشها مستقیماً روی کوئریهای دیتابیس تاثیر دارن و باعث کاهش زمان اجرا میشن.
۳. بهینهسازی دستی کوئریها در وردپرس
اگر قصد داری کش کوئری رو بهصورت دستی برای کوئریهای خاص وردپرس فعال کنی (مثلاً برای کوئریهای سفارشی یا WP_Query)، میتونی به کمک transient API دادهها رو در کش موقت ذخیره کنی:
نکات مهم در فعالسازی کش کوئری 📝
🔹 اگر سایت شما مرتب بهروزرسانی میشه، کش کوئری ممکنه زود منقضی بشه و تاثیرش کمتر بشه.
🔹 برای سایتهای پرمحتوا یا فروشگاهی، ترکیب کش کوئری + کش صفحه + کش Object بهترین بازدهی رو داره.
🔹 MySQL از نسخه ۵.۷ به بعد، Query Cache رو بهتدریج کنار گذاشت و پیشنهاد میشه از Redis یا Memcached استفاده بشه.
🔹 کش کوئری برای کوئریهای تکراری و بدون تغییر بیشترین تاثیر رو داره.
جمعبندی ✅
برای فعالسازی کش کوئری در MySQL کافیه فایل پیکربندی رو تغییر بدی و مقادیر مربوط به Query Cache رو تنظیم کنی. در وردپرس هم میتونی از افزونههای کش یا کش Object مثل Redis و Memcached استفاده کنی. اگر سایتت بازدید بالایی داره یا تعداد کوئریها زیاده، استفاده از کش کوئری به بهبود سرعت کمک زیادی میکنه.
بدون دیدگاه