سؤال

نحن في المرحلة الأخيرة من المشروع وبدأت تحسينه.

بعد اختبارات قليلة، أدركنا أن معظم (إن لم يكن جميعا) من الوقت الذي يقضيه في تحميل الصفحة، ينفق في مذهب.

من أصل 5 ثوان تحميل صفحة، يتم إنفاق 3 - 4 ثوان فقط على 2 استعلامات العقيدة.

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

بقدر ما أستطيع التجمع، فإن ذاكرة التخزين المؤقت ل MySQL Query نشط:

تحرير] لسبب ما اختفت بقية سؤالي لذلك أنا نشرها مرة أخرى [/ edit

qcache_free_blocks |. 57.
qcache_free_memory |. 22300072.
qcache_hits |. 7117.
qcache_inserts | 3308.
qcache_lowmem_prunes |. 0.
qcache_not_cached |. 4537.
qcache_queries_in_cache |. 1225.
qcache_total_blocks |. 2609.

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

هل لدى أي شخص أي نصائح حول السبب في أن تمكين التخزين المؤقت للاستعلام / النتائج لن يحسن أوقات الحمل؟

هل كانت مفيدة؟

المحلول

إذا حصلت عليه بشكل صحيح، فلن يكون لديك قائمة أبطأ الاستعلامات في الوقت الحالي. أوصي بالبدء من هذا.

قم بتشغيل تسجيل الاستعلام البطيء:

log_slow_queries=/var/log/mysql.slow.log

وثم:

تقييد العلاقات قدر الإمكان

من المهم تقييد العلاقات قدر الإمكان. هذا يعنى:

  • فرض اتجاه اجتياز (تجنب الجمعيات ثنائية الاتجاه إن أمكن)
  • القضاء على الجمعيات غير الأساسية

هذا لديه العديد من الفوائد:

  • خفض اقتران في نموذج المجال الخاص بك
  • رمز أبسط في نموذج المجال الخاص بك (لا حاجة للحفاظ على ثنائي الاتجاه بشكل صحيح)
  • أقل عمل للعقيدة

سرقت من مبدأ أفضل الممارسات

نصائح أخرى

هل جربت الاستعلام من سطر وحدة التحكم / القيادة؟ سيكون مثيرا للاهتمام، ما الوقت الذي يحتاجون إليه، عند تنفيذها دون orm.

واسمحوا لي أن أعرف، أنا مهتم باستخدام عقيدة، ولكن خائف قليلا من الأداء.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top