بهینه سازی MySQL: تعیین مقدار query_cache_size

در MySQL مقدار query cache مقدار حافظه تخصیص داده شده برای نگهداری مجموعه جواب درخواست‌های SELECT است. برای درخواست‌های تکراری پاسخ بجای اجرای مجدد درخواست روی پایگاه داده از حافظه cache برگردانده می‌شود.

تعیین مقدار مناسب query_cache_size برای نرم‌افزارهایی که داده‌های موجود در پایگاه داده را به ذفعات نمایش می‌دهند (مانند سایت‌های خبری) تاثیر زیادی در کارایی خواهد داشت.

برای شروع وارد پایگاه داده شوید:

$ mysql -u databaseusername -p

و دستور زیر را اجرا کنید:

MariaDB [(none)]> SHOW STATUS LIKE "qcache%";
+-------------------------+-----------+
| Variable_name           | Value     |
+-------------------------+-----------+
| Qcache_free_blocks      | 17877     |
| Qcache_free_memory      | 188435328 |
| Qcache_hits             | 383895195 |
| Qcache_inserts          | 93931033  |
| Qcache_lowmem_prunes    | 18457613  |
| Qcache_not_cached       | 1223345   |
| Qcache_queries_in_cache | 51448     |
| Qcache_total_blocks     | 120924    |
+-------------------------+-----------+
8 rows in set (0.00 sec)

توجه: مقدار query_cache_size تعیین کننده مقدار حافظه موجود برای cache کردن همه query ها است. اینگونه برداشت نشود که این مقدار برای هر درخواست به صورت جدا در نظر گرفته شده است.

مقدار Qcache_free_memory: نشان دهنده مقدار آزاد حافظه تعیین شده است.

مقدار Qcache_lowmem_prunes: تعداد دفعاتی که پایگاه داده برای cache کردن مقدار جدید مجبور به خالی کردن cache می‌شود.

نکته: مقدار query_cache_size در حدی تعیین شود که Qcache_lowmem_prunes کم شود.

برچسب ها: 

افزودن نظر جدید