فعال کردن Query Cache در MySQL
Query Cache یکی از قابلیتهای MySQL است که میتواند عملکرد جستجوها را با ذخیرهسازی نتایج کوئریهای تکراری بهبود بخشد. با فعال کردن Query Cache، زمانی که کوئری مشابهی دوباره اجرا شود، بهجای پردازش مجدد آن، نتایج ذخیرهشده از کش بازگردانده میشوند.
فهرست مطالب
- Query Cache چیست؟
- مزایا و محدودیتهای Query Cache
- فعال کردن Query Cache در MySQL
- تنظیمات اصلی Query Cache
- بررسی وضعیت Query Cache
- غیرفعال کردن Query Cache
- لینکهای مطالعه پیشنهادی
Query Cache چیست؟
Query Cache قابلیتی در MySQL است که نتایج کوئریهای SELECT را در حافظه ذخیره میکند. اگر یک کوئری مشابه بار دیگر اجرا شود و دادههای مورد نیاز تغییر نکرده باشند، نتایج از کش بازگردانده میشوند. این قابلیت بهویژه برای برنامههایی که کوئریهای تکراری زیادی دارند، بسیار مفید است.
مزایا و محدودیتهای Query Cache
مزایا:
- افزایش سرعت پاسخگویی: کوئریهای تکراری به جای اجرای مجدد از حافظه کش بازخوانی میشوند.
- کاهش بار روی سرور: منابع پردازشی کمتری مصرف میشود.
- بهینهسازی مصرف منابع: نتایج در حافظه ذخیره میشوند و نیازی به دسترسی مکرر به دیسک نیست.
محدودیتها:
- عدم کارایی در جداول پرتغییر: با تغییر دادههای جداول، کش بهطور خودکار نامعتبر میشود.
- منسوخ شدن در نسخههای جدید: Query Cache از نسخه MySQL 8.0 حذف شده است.
- هزینه مدیریت: نگهداری و بروزرسانی کش ممکن است تأثیر معکوس بر عملکرد داشته باشد.
فعال کردن Query Cache در MySQL
برای فعال کردن Query Cache، باید فایل تنظیمات MySQL (my.cnf
یا my.ini
) را ویرایش کنید.
مراحل فعالسازی:
- فایل تنظیمات MySQL را باز کنید.
- در لینوکس:
sudo nano /etc/my.cnf
- در ویندوز: مسیر نصب MySQL را پیدا کنید و فایل
my.ini
را باز کنید. - بخش
[mysqld]
را پیدا کرده و تنظیمات زیر را اضافه یا ویرایش کنید:
query_cache_type = 1
query_cache_size = 64M
query_cache_limit = 2M
- سرویس MySQL را مجدداً راهاندازی کنید:
- در لینوکس:
sudo service mysql restart
- در ویندوز: از Services سرویس MySQL را ریاستارت کنید.
- در لینوکس:
تنظیمات اصلی Query Cache
برخی از تنظیمات مهم Query Cache عبارتاند از:
query_cache_min_res_unit
: اندازه حداقل فضای تخصیصیافته برای هر کوئری کش شده (پیشفرض: 4096 بایت).query_cache_wlock_invalidate
: اگر جداول کش شده توسط قفل نوشتن تغییر کنند، کش را نامعتبر کند (پیشفرض: 0).query_cache_size
: حافظه کلی برای Query Cache.
بررسی وضعیت Query Cache
برای بررسی وضعیت Query Cache، از دستور زیر در MySQL استفاده کنید:
SHOW VARIABLES LIKE 'query_cache%';
این دستور مقدار متغیرهای مرتبط با Query Cache را نمایش میدهد.
برای مشاهده عملکرد کش:
SHOW STATUS LIKE 'Qcache%';
خروجی توضیحاتی مانند تعداد کوئریهای کش شده، هیتهای کش و میزان حافظه استفادهشده را نشان میدهد.
غیرفعال کردن Query Cache
اگر نیاز به غیرفعال کردن Query Cache دارید:
- فایل تنظیمات MySQL را باز کنید و مقدار
query_cache_type
را به0
تغییر دهید:query_cache_type = 0
- سرویس MySQL را ریاستارت کنید.
لینکهای مطالعه پیشنهادی
نتیجهگیری
Query Cache یکی از ابزارهای مفید MySQL برای بهبود عملکرد جستجوهای تکراری است. با این حال، این قابلیت بیشتر برای سیستمهایی با دادههای کمتغییر و کوئریهای مشابه مفید است. در پروژههایی که از نسخه MySQL 8.0 یا بالاتر استفاده میکنند، بهتر است از تکنیکهای بهینهسازی مدرنتری مانند Indexing یا Caching in Application Layer استفاده شود.