> 1. What is the shape of your data? > i.e. how big are your entities and what do they contain?
class USER_INVENTORY(db.Model): TUSER_ID = db.IntegerProperty() ITEM_TYPE = db.StringProperty() ITEM_ID = db.IntegerProperty() SUFFIX_ID = db.IntegerProperty() HAVE_INVENTORY = db.IntegerProperty() SELL_INVENTORY = db.IntegerProperty() SELL_RESERVED = db.IntegerProperty() SELL_AVAILABLE = db.IntegerProperty() SELL_PRICE = db.FloatProperty() SELL_IDEAL_INVENTORY = db.IntegerProperty() BUY_INVENTORY = db.IntegerProperty() BUY_RESERVED = db.IntegerProperty() BUY_AVAILABLE = db.IntegerProperty() BUY_PRICE = db.FloatProperty() SHIPPING_VALUE = db.FloatProperty() SELL_RANKING = db.IntegerProperty() VERSION = db.IntegerProperty() CATEGORY_ID = db.IntegerProperty() # L0_CATEGORY_ID = db.IntegerProperty() L1_CATEGORY_ID = db.IntegerProperty() L2_CATEGORY_ID = db.IntegerProperty() L3_CATEGORY_ID = db.IntegerProperty() L4_CATEGORY_ID = db.IntegerProperty() L5_CATEGORY_ID = db.IntegerProperty() L6_CATEGORY_ID = db.IntegerProperty() L7_CATEGORY_ID = db.IntegerProperty() L8_CATEGORY_ID = db.IntegerProperty() L9_CATEGORY_ID = db.IntegerProperty() INVENTORY_TYPE = db.StringProperty() # G-Global C-Custom A-Auction P-Pointer INVENTORY_NAME = db.StringProperty() ITEM_NUMBER = db.StringProperty() ITEM_NAME = db.StringProperty() SUFFIX_NAME = db.StringProperty() ATTR_Set = db.StringProperty() ATTR_Game = db.StringProperty() ATTR_Rarity = db.StringProperty() ATTR_Language = db.StringProperty() ATTR_Style = db.StringProperty() ATTR_Condition = db.StringProperty() ATTR_Edition = db.StringProperty() This is really the minimum you need to describe an inventory object. If the number of properties is the problem can I some how just return a subset of the properties I need in the query? > 2. How are you using entity groups? Is all your data in a single > entity group (shared ancestor)? Not at all. > 3. Also try to experiment with permutations of your index and query to > try to isolate the bottleneck. i.e. if you just fetch(500) on "SELECT > * FROM USER_INVENTORY", does it still take as long? (and if so, then > rephrase the question to eliminate the index aspects) Changing to SELECT * FROM USER_INVENTORY doesn't help it's the loop where the entities are being fetched. Is there some way to not return all the properties? Can I just get the keys that match the query? I remember some one in the goolge io videos saying not to sort or filter in memory. So I was trying to stick with making indexes do the work. After looking at this setup I think sorting in memory with memcached objects might be the only way to get anything done. That's rewriting a database in python and using bigtable as nothing but a file store. Also I can't see logs anymore: HTTP response was too large: 1808121. The limit is: 1048576. Clear logs please. --~--~---------~--~----~------------~-------~--~----~ 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-appengine@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 -~----------~----~----~----~------~----~------~--~---