Je dois récupérer 5 objets qui correspondent à un certain critère complexe, et je ne peux pas/ne veux pas passer ce critère à la clause WHERE (filtre dans django), donc j'ai besoin de parcourir les résultats, en testant chaque enregistrer pour les critères jusqu'à ce que je reçois mes 5 objets, après cela, je veux jeter l'ensemble de la requête et ne jamais le revoir.Comment parcourir correctement un énorme QuerySet dans django?
Dans la plupart des cas, les enregistrements dont j'ai besoin seront au début de l'ensemble de requêtes, dans le pire des cas, ils seront à leur fin. La table est énorme et j'ai seulement besoin de 5 enregistrements. Donc ma question est: Comment puis-je itérer sur un ensemble de requêtes sans avoir django pour mettre en cache les résultats? Cela doit être fait de telle sorte que ni le moteur sql/django ne stocke/cache les résultats n'importe où.
savez-vous comment désactiver le cache dans postgresql? (Forcez-le à utiliser un curseur) –
Vous pouvez vous débarrasser des caches de PostgreSQL dans shared_buffers en redémarrant le serveur PostgreSQL. Je ne sais pas s'il y a un moyen plus pratique. Alternativement, il suffit de définir un shared_buffers vraiment minime qui est juste suffisant pour vos connexions, donc il n'y a pas beaucoup de place pour les données en cache. –
@Thiado a ajouté plus de matos yo ma réponse. J'espère que cela t'aides. Une raison pour laquelle vous ne voulez pas de cache? Des tests de performance sont en cours? –