On Tue, Feb 17, 2009 at 7:49 PM, Malcolm Tredinnick <[email protected]> wrote: > I'd be somewhat against this, I think. It's *very* easy to reuse > querysets and inadvertently cause extra database queries. Unless you're > using really huge querysets, the memory usage is not going to kill you. > Pulling back the huge number of results already uses a bunch of memory > and that's a property of the db wrapper. There's a multiplier involved > for creating Python objects.
Speaking as someone who has (accidentally) brought down a beefy server by accidentally evaluating a reasonably large QuerySet, I'd say there's not a whole lot we can do without impacting usability in other, more vital-to-support scenarios. When we had our nasty server-crashing query (which thankfully never made it out of staging; that's what staging servers are for and why you should have one to test things before you ever think about deploying), just fetching the data from the DB -- no object instantiation at all -- was a significant drain. Actually trying to instantiate the model objects kicked the usage up even higher, of course, but it was mostly an interesting exercise in watching the memory spike move from place to place as the data worked its way from the DB to the Python process in which Django was running. (incidentally, the above sort of situation is one reason why a QuerySet limits itself to a certain number of objects displayed in __repr__; the real killer was that an error was being thrown, and as part of the Django debug page it was trying to print the __repr__ of a QuerySet of, IIRC, about half a million objects. A QuerySet doesn't try to do that anymore) -- "Bureaucrat Conrad, you are technically correct -- the best kind of correct." --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/django-developers?hl=en -~----------~----~----~----~------~----~------~--~---
