آموزش-MySql
| |

فعال کردن Query Cache در MySQL

Query Cache یکی از قابلیت‌های MySQL است که می‌تواند عملکرد جستجوها را با ذخیره‌سازی نتایج کوئری‌های تکراری بهبود بخشد. با فعال کردن Query Cache، زمانی که کوئری مشابهی دوباره اجرا شود، به‌جای پردازش مجدد آن، نتایج ذخیره‌شده از کش بازگردانده می‌شوند.


فهرست مطالب

  1. Query Cache چیست؟
  2. مزایا و محدودیت‌های Query Cache
  3. فعال کردن Query Cache در MySQL
  4. تنظیمات اصلی Query Cache
  5. بررسی وضعیت Query Cache
  6. غیرفعال کردن Query Cache
  7. لینک‌های مطالعه پیشنهادی

Query Cache چیست؟

Query Cache قابلیتی در MySQL است که نتایج کوئری‌های SELECT را در حافظه ذخیره می‌کند. اگر یک کوئری مشابه بار دیگر اجرا شود و داده‌های مورد نیاز تغییر نکرده باشند، نتایج از کش بازگردانده می‌شوند. این قابلیت به‌ویژه برای برنامه‌هایی که کوئری‌های تکراری زیادی دارند، بسیار مفید است.


مزایا و محدودیت‌های Query Cache

مزایا:

  1. افزایش سرعت پاسخگویی: کوئری‌های تکراری به جای اجرای مجدد از حافظه کش بازخوانی می‌شوند.
  2. کاهش بار روی سرور: منابع پردازشی کمتری مصرف می‌شود.
  3. بهینه‌سازی مصرف منابع: نتایج در حافظه ذخیره می‌شوند و نیازی به دسترسی مکرر به دیسک نیست.

محدودیت‌ها:

  1. عدم کارایی در جداول پرتغییر: با تغییر داده‌های جداول، کش به‌طور خودکار نامعتبر می‌شود.
  2. منسوخ شدن در نسخه‌های جدید: Query Cache از نسخه MySQL 8.0 حذف شده است.
  3. هزینه مدیریت: نگهداری و بروزرسانی کش ممکن است تأثیر معکوس بر عملکرد داشته باشد.

فعال کردن Query Cache در MySQL

برای فعال کردن Query Cache، باید فایل تنظیمات MySQL (my.cnf یا my.ini) را ویرایش کنید.

مراحل فعال‌سازی:

  1. فایل تنظیمات MySQL را باز کنید.
    • در لینوکس:
sudo nano /etc/my.cnf
  1. در ویندوز: مسیر نصب MySQL را پیدا کنید و فایل my.ini را باز کنید.
  2. بخش [mysqld] را پیدا کرده و تنظیمات زیر را اضافه یا ویرایش کنید:
query_cache_type = 1
query_cache_size = 64M
query_cache_limit = 2M
  1. سرویس 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 دارید:

  1. فایل تنظیمات MySQL را باز کنید و مقدار query_cache_type را به 0 تغییر دهید: query_cache_type = 0
  2. سرویس MySQL را ری‌استارت کنید.

لینک‌های مطالعه پیشنهادی


نتیجه‌گیری

Query Cache یکی از ابزارهای مفید MySQL برای بهبود عملکرد جستجوهای تکراری است. با این حال، این قابلیت بیشتر برای سیستم‌هایی با داده‌های کم‌تغییر و کوئری‌های مشابه مفید است. در پروژه‌هایی که از نسخه MySQL 8.0 یا بالاتر استفاده می‌کنند، بهتر است از تکنیک‌های بهینه‌سازی مدرن‌تری مانند Indexing یا Caching in Application Layer استفاده شود.

نوشته‌های مشابه

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

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