Meine Ansicht zeigt eine Tabelle mit Daten an (spezifisch für einen Kunden, der viele Benutzer haben kann) und diese Tabelle benötigt eine Menge an Rechenressourcen, um sie zu füllen. Die Daten eines Kunden ändern sich 4/5-mal pro Woche, normalerweise am selben Tag.Python Django Cache vs im Modellfeld speichern? Was ist effizienter?
Caching ist eine naheliegende Lösung, aber ich frage mich, ob Django's cache framework wesentlich effizienter ist, als ein Textfeld auf der Kundenebene zu erstellen und stattdessen die Daten dort zu speichern?
Ich denke, es ist einfacher zu implementieren (und löschen Sie das Textfeld, wenn sich die Daten ändern), aber was sind die Nachteile und gibt es noch etwas, auf das ich achten muss? (Probleme, wenn der Datensatz zu groß wird? zusätzliche Felder im Modell etc etc)
Jede Hilfe wäre sehr willkommen!
Gute Antwort und der wahre Test ist zu sehen, wie lange die Berechnung dauert, wenn das System bereits unter Stress steht. Wenn dieses Zeitlimit überschritten wird, müssen Sie in Betracht ziehen, veraltete Daten zu verarbeiten, bis sie fertig sind, und das ist mit dem Cache-Feld etwas schwieriger zu tun. Eckfall für eine vernünftige Infrastruktur. – Melvyn
Hallo bruno, vielen Dank. Es ist der Ansatz, den ich gerne machen würde, also ist es gut zu hören. Sie schlagen vor, ein neues Modell für diese Daten zu erstellen. Wäre es eine schlechte Idee, das Textfeld direkt in die Kundentabelle einzufügen? Ich habe gelesen [hier] (https://stackoverflow.com/questions/5268523/when-you-have-a-text-field-in-mysql-or-postgresql-should-you-put-it-in-a- -separa) dass Postgre (was ich bin) es ist immer noch effizient in diesem Szenario, aber ich frage mich, ob es noch etwas zu beachten? –
Was mich betrifft, würde ich es immer noch von der Kundentabelle fernhalten, nur weil es semantisch nicht verwandt ist - ein Implementierungsdetail, das db als bitbucket für Wegwerfdaten verwendet - wo Ihre Kundentabelle wichtige Geschäftsdaten enthält. Nicht nur das, aber ich würde eine Fassade API davor verstecken die Tatsache, dass es in Ihrer Datenbank gespeichert ist, also zu einem Cache-Backend oder verschieben diese Tabelle auf eine andere Datenbank verschieben würde sehr lokalisierte Implementierung ändern bleiben. –