One more tip: only index the properties you need. When you delete an entity, we also have to delete all the associated indexes.
-- Ikai Lan Developer Programs Engineer, Google App Engine Blogger: http://googleappengine.blogspot.com Reddit: http://www.reddit.com/r/appengine Twitter: http://twitter.com/app_engine On Tue, Dec 28, 2010 at 9:01 PM, Wesley C (Google) <wesc+...@google.com<wesc%2b...@google.com> > wrote: > A. +1 on tim's suggestion.as an example (in Python), the following > piece of code... > > for obj in Object.all(): > obj.delete() # thousands of individual delete()s > > ... should run way slower than... > > Object.all(keys_only=True) > db.delete(posts) # one massive delete() > > the second is faster in 2 ways: > 1) keys-only means that it doesn't have to fetch the actual data > 2) uses the google.appengine.ext.db.delete() once where you pass in > individual keys > > B. another alternative is the new Datastore Admin where you can > manually bulk delete entities: > > http://code.google.com/appengine/docs/python/datastore/creatinggettinganddeletingdata.html#Deleting_Entities_in_Bulk > > http://googleappengine.blogspot.com/2010/10/new-app-engine-sdk-138-includes-new.html > > C. other alternatives > > when a game finishes, *must* you do the deletes before returning back > to the user? if it's not critical, then you can farm out this job to a > task queue or use the new mapper API (half of the MapReduce solution). > more info on both at: > > Tasks Queue API > http://code.google.com/appengine/docs/python/taskqueue/overview.html > > Mapper API > http://googleappengine.blogspot.com/2010/07/introducing-mapper-api.html > http://code.google.com/p/appengine-mapreduce/ > http://code.google.com/appengine/articles/mr/mapper.html > > if deletion is complex, you may also consider the new Pipeline API: > http://code.google.com/p/appengine-pipeline/ > http://news.ycombinator.com/item?id=2013133 > > hope this helps! > -- wesley > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > "Core Python Programming", Prentice Hall, (c)2007,2001 > "Python Fundamentals", Prentice Hall, (c)2009 > http://corepython.com > > wesley.chun : wesc+api at google.com : @wescpy > developer relations :: google app engine > @app_engine :: googleappengine.blogspot.com > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine" group. > To post to this group, send email to google-appeng...@googlegroups.com. > To unsubscribe from this group, send email to > google-appengine+unsubscr...@googlegroups.com<google-appengine%2bunsubscr...@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/google-appengine?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.