الصفحة الرئيسية » howto » تسريع موقع الويب الخاص بك مع MySQL الاستعلام التخزين المؤقت

    تسريع موقع الويب الخاص بك مع MySQL الاستعلام التخزين المؤقت

    واحدة من أفضل الطرق لتسريع تطبيق الويب الخاص بك هي تمكين التخزين المؤقت للاستعلام في قاعدة البيانات الخاصة بك ، والذي يقوم بتخزين استعلامات SQL المستخدمة بشكل شائع في الذاكرة للوصول الفوري فعليًا عن طريق الصفحة التالية التي تقدم الطلب نفسه.

    السبب في أن هذه الطريقة قوية لدرجة أنك لا تحتاج إلى إجراء أي تغييرات على تطبيق الويب الخاص بك ، عليك فقط أن تضحي بقليل من الذاكرة. هذا لن يحل كل مشاكلك ، لكنه بالتأكيد لا يضر.

    ملاحظة: إذا كان التطبيق الخاص بك يقوم بتحديث الجداول بشكل متكرر ، فسيتم مسح ذاكرة التخزين المؤقت للاستعلام بشكل مستمر ولن تحصل على أي فائدة من ذلك. هذا مثالي للتطبيق الذي يقرأ في الغالب مقابل قاعدة البيانات ، مثل مدونة WordPress. لن يعمل هذا أيضًا إذا كنت تعمل على استضافة مشتركة.

    تمكين التخزين المؤقت مع خادم الجري

    أول شيء تريد القيام به هو التأكد من أن التثبيت الخاص بك من MySQL لديه بالفعل دعم التخزين المؤقت الاستعلام المتاحة. معظم التوزيعات تفعل ، ولكن يجب عليك التحقق على أي حال.

    سترغب في تشغيل هذا الأمر من وحدة تحكم MySQL ، والتي ستخبرك إذا كان التخزين المؤقت للاستعلام متاحًا.

    mysql> إظهار المتغيرات مثل 'have_query_cache'؛ + ------------------ + ------- + | Variable_name | القيمة | + ------------------ + ------- + | have_query_cache | نعم +------------------+-------+ 

    لا تخطئ هذا على أنه يعني أن التخزين المؤقت للاستعلام يتم تمكينه بالفعل ، لأن معظم مقدمي الاستضافة لن يقوموا بتمكين هذا بشكل افتراضي. ومن الغريب أن تركيب Ubuntu Feisty كان قد مكن بالفعل ...

    بعد ذلك ، سنحتاج إلى التحقق ومعرفة ما إذا كان التخزين المؤقت للاستعلام ممكّنًا أم لا. سنحتاج إلى التحقق من أكثر من متغير ، لذلك يمكننا القيام بذلك مرة واحدة عن طريق التحقق من الاستعلام المتغير٪

    mysql> إظهار المتغيرات مثل "query٪"؛ + ------------------------------ + --------- + | Variable_name | القيمة | + ------------------------------ + --------- + | query_alloc_block_size | 8192 | | query_cache_limit | 1048576 | | query_cache_min_res_unit | 4096 | | query_cache_size | 8388608 | | query_cache_type | على | | query_cache_wlock_invalidate | OFF | | query_prealloc_size | 8192 | +------------------------------+---------+ 

    إليك العناصر المهمة في القائمة وما تعنيه:

    • query_cache_size - هذا هو حجم ذاكرة التخزين المؤقت بالبايت. سيؤدي تعيين هذه القيمة إلى صفر إلى تعطيل التخزين المؤقت بشكل فعال.
    • query_cache_type - يجب أن تكون هذه القيمة ON أو 1 للتخزين المؤقت للاستعلام لكي يتم تمكينه بشكل افتراضي.
    • query_cache_limit - هذا هو الحد الأقصى لحجم الاستعلام (بالبايت) الذي سيتم تخزينه مؤقتًا.

    إذا تم تعيين قيمة query_cache_size إلى 0 أو إذا كنت تريد فقط تغييرها ، فستحتاج إلى تشغيل الأمر التالي ، مع الأخذ في الاعتبار أن القيمة تكون بالبايت. على سبيل المثال ، إذا أردت تخصيص 8 ميغابايت إلى ذاكرة التخزين المؤقت ، فسنستخدم 1024 * 1024 * 8 = 8388608 كقيمة.

    SET GLOBAL query_cache_size = 8388608؛

    وبالمثل ، يمكن تعيين الخيارات الأخرى باستخدام نفس البنية:

    SET GLOBAL query_cache_limit = 1048576؛
    SET GLOBAL query_cache_type = 1

    الآن كيف يمكننا معرفة ما إذا كان يعمل بالفعل؟ يمكنك استخدام الأمر SHOW STATUS لسحب جميع المتغيرات التي تبدأ بـ "Qc" لإلقاء نظرة على ما يجري تحت غطاء محرك السيارة.

    الخلية> أعرض الحالة مثل "Qc٪"؛ + ------------------------- + -------- + | Variable_name | القيمة | + ------------------------- + -------- + | Qcache_free_blocks | 65 | | Qcache_free_memory | 201440 | | Qcache_hits | 18868 | | Qcache_inserts | 2940 | | Qcache_lowmem_prunes | 665 | | Qcache_not_cached | 246 | | Qcache_queries_in_cache | 492 | | Qcache_total_blocks | 1430 | + ------------------------- + -------- + 8 صفوف في مجموعة (0.00 ثانية) 

    ستلاحظ في الإحصائيات أن لدي الكثير من الذاكرة المجانية المتبقية. إذا كان الخادم الخاص بك يعرض الكثير من البرقوق المنخفض ، فقد تحتاج إلى التفكير في زيادة هذه القيمة ، لكنني لن أنفق الكثير من الذاكرة على التخزين المؤقت للاستعلام لخادم ويب ... تحتاج إلى ترك الذاكرة متوفرة لـ apache أو php أو ruby ​​أو مهما كنت تستخدم.

    تمكين في ملف التكوين

    إذا كنت تريد أن تستمر هذه التغييرات في إعادة تشغيل أو إعادة تشغيل خادم mysql ، فستحتاج إلى إضافتها إلى ملف التكوين /etc/mysql/my.cnf الخاص بـ MySQL. لاحظ أنه قد يكون في موقع مختلف على التثبيت الخاص بك.

    افتح الملف باستخدام محرر نصوص في sudo أو وضع الجذر ، ثم أضف هذه القيم إذا لم تكن موجودة بالفعل في الملف. إذا كانت موجودة ، فقط قم بتنزيلها.

    query_cache_size = 268435456 query_cache_type = 1 query_cache_limit = 1048576

    يمكن أن يعمل التخزين المؤقت على الاستعلام على تحسين سرعة تطبيق الويب بشكل ملحوظ ، خاصة إذا كان التطبيق يقرأ في الغالب. راقب الحالة باستخدام الطرق المذكورة أعلاه وانظر كيف تعمل على مدار الوقت.