كفاءة تخزين طاولة كبيرة في مخبأ Django
-
27-10-2019 - |
سؤال
أستخدم Django مع jqGrid وتحميل الصفحات عبر AJAX.في بعض الأحيان ، تكون الاستعلامات معقدة للغاية ، ويكون تحميل الصفحة بطيئًا جدًا ، أما بالنسبة للصفحات البعيدة فهي أبطأ كثيرًا (وهو أمر متوقع ، غالبًا ما تتجاوز النتائج 100 ألف عنصر)اعتقدت أن التخزين المؤقت للنتيجة سيحل المشكلة ، مضيفًا بعض الوقت لتحميل الصفحة الأولى ، ولكن بعد ذلك يسرع بشدة تحميل الصفحات التالية.
بدلاً من ذلك ، جعل تحميل الصفحة الأولى بطيئًا بشكل لا يصدق وحتى الصفحات اللاحقة تستغرق الكثير من الوقت (11 ثانية على جهاز كمبيوتر شخصي قياسي).أنا أستخدم الواجهة الخلفية لذاكرة التخزين المؤقت locmem. أيه أفكار؟لقد حاولت ، للمقارنة ، تخزين النتائج في قاموس عالمي وكان ذلك أفضل بكثير (تستغرق الصفحات اللاحقة ثانية واحدة فقط) ، لكنني سمعت أنها ليست طريقة آمنة.
أية أفكار؟
المحلول
يمكنك النظر في تدفئة ذاكرة التخزين المؤقت.يمكن القيام بذلك يدويًا ، أو باستخدام إطار عمل في قائمة الانتظار مثل الكرفس للتخزين المؤقت للصفحات أو مجموعات الاستعلام اللاحقة في الخلفية بعد تحميل صفحة أخرى.
ألق نظرة على johnny-cache ، التي تقوم بالتخزين المؤقت لمجموعة طلبات البحث الشفافة.هذا قد (أكرر ، قد ) يحل جميع مشاكلك.