Frage

Ich entwickle eine mittelständische Site für mein Unternehmen mit großen Datenmengen (Forschungsveröffentlichungen, Hunderte von Mitarbeitern usw.) und Sicherheitseinschränkungen, die mich dazu zwingen, Django-Guardian zu verwenden, um Objektberechtigungen zu handhaben. Aber jetzt merke ich, dass dies innerhalb des Administrators langsam sein kann.

Wir haben bereits einen RediS-Cache implementiert, der ziemlich in Ordnung zu sein scheint, aber dennoch große Listenansichten (Hunderte von Elementen) laden (Hunderte von Elementen) dauert Loong-Zeit.

Wir verwenden bisher die folgende Einrichtung:

generasacodicetagpre.

Als Beispiel ist dies das Person-Modul, in dem die Listenansicht altert, um zu laden ( nicht als Superuser, in diesem Fall, in diesem Fall ist es ziemlich schnell : Dies ist der Grund, warum ich denke, dass das Problem liegt Auf dem django-Guardian-Mehrfachbeziehungen):

generasacodicetagpre.

Ich verstehe, dass der Engpass auch in meiner Administratorklasse sein könnte. Dies ist derjenige, den wir verwenden:

generasacodicetagpre.

Könnten Sie mir einen Rat geben oder mir eine mögliche Lösung vorschlagen, die wir in die Administratorschnittstelle integrieren könnten? : -)

Vielen Dank im Voraus!

bearbeiten :

Mit Django-Debug-Symbolleiste kann ich sehen, dass es sehr wenige Abfragen an Django-Guardian gibt, und ziemlich schnell (alles unter 6ms). Andererseits habe ich mehr als 7500 Anfragen für einen Listenansicht von 263, wodurch der Sicht bis zu 46 Sekunden verlangsamt wird. Fast alle von ihnen sind in meinem definierten Modell, um zu laden (ich denke) nutzlose Daten: Ich vermute, dass nur der Name und der Objekt-ID erforderlich sind.

Wie kann ich den Datenbetrag einschränken, der in der QuerySet () -Methode geladen ist? Danke.

War es hilfreich?

Lösung

Wenn Sie 7500 Abfragen ausführen, ist Ihr Problem wahrscheinlich, dass Sie nicht verwandte Objekte laden, die Sie benötigen - hier, was ich ansehen würde:

    .
  1. Haben Sie Methoden auf Ihrem Modell, auf das auf verbundene Objekte zugreifen?
  2. Haben Sie Artikel in Ihrem list_display Einstellung der Zugriff auf verwandte Objekte?
  3. entweder Anrufe an diese Dinge beseitigen, oder betrachten select_related.

    auch - versuchen Sie auch das Wechseln des Pagination Ihrer Admin-Ansichten - Wenn Sie die Anzahl der angegebenen Datensätze reduzieren - wie viele weniger Abfragen gibt es?Das gibt Ihnen einen Hinweis darauf, wie viele dieser Probleme Sie haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top