العودة إلى أسئلة قواعد البيانات
مركز المساعدة · الأسئلةقواعد البيانات1 دقائق قراءة

كيف أقلل استعلامات N+1 في التطبيق؟

يحدث نمط N+1 عندما يحمّل الكود قائمة ثم ينفذ استعلاماً إضافياً لكل عنصر، فيزداد عدد الاستعلامات مع حجم النتائج. قد يرفع ذلك زمن الاستجابة حتى لو كان كل استعلام سريعاً؛ حدّد الوصول المتكرر وحمّل البيانات المرتبطة بعدد محدود من الاستعلامات.

قواعد البيانات

اعثر على الاستعلام المتكرر

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

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

حمّل البيانات المرتبطة عن قصد

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

قِس عدد الاستعلامات والصفوف وحجم الاستجابة وزمنها قبل التغيير وبعده. أضف فحصاً لأحجام قوائم ممثلة، وحافظ على ترقيم الصفحات وفلاتر الصلاحيات عند تغيير طريقة الجلب.

العودة إلى أسئلة قواعد البيانات