jeudi 22 mars 2012

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

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

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

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

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

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

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

mysql> show variables like 'have_query_cache'; +------------------+-------+ | Variable_name    | Value | +------------------+-------+ | have_query_cache | YES   | +------------------+-------+ 

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

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

mysql> show variables like 'query%'; +------------------------------+---------+ | Variable_name                | Value   | +------------------------------+---------+ | query_alloc_block_size       | 8192    | | query_cache_limit            | 1048576 | | query_cache_min_res_unit     | 4096    | | query_cache_size             | 8388608 | | query_cache_type             | ON      | | query_cache_wlock_invalidate | OFF     | | query_prealloc_size          | 8192    | +------------------------------+---------+ 

هنا العناصر المهمة في قائمة وما يعني أنها :

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

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

SET GLOBAL query_cache_size = 8388608;

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

SET GLOBAL query_cache_limit = 1048576;
SET GLOBAL query_cache_type = 1;

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

mysql> SHOW STATUS LIKE 'Qc%'; +-------------------------+--------+ | Variable_name           | Value  | +-------------------------+--------+ | 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 rows in set (0.00 sec) 

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

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

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

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

query_cache_size = 268435456 query_cache_type=1 query_cache_limit=1048576

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

Aucun commentaire:

Enregistrer un commentaire