小手術我AppEngine上使用python 27.我寫了下面的方法從匹配特定的「冒險」的數據存儲檢索圖像細節組建一個基本的畫冊。我使用限制和偏移量進行分頁,但效率很低。瀏覽5頁(每頁5張照片)後,我已經使用了我的數據存儲小操作的16%。有趣的是,我只用了1%的數據存儲讀取操作。如何讓數據存儲小型操作更高效 - 我不確定這些操作是由什麼組成的。使用更少的數據存儲在AppEngine上
def grab_images(adventure, the_offset=0, the_limit = 10):
logging.info("grab_images")
the_photos = None
the_photos = PhotosModel.all().filter("adventure =", adventure)
total_number_of_photos = the_photos.count()
all_photos = the_photos.fetch(limit = the_limit, offset = the_offset)
total_number_of_pages = total_number_of_photos/the_limit
all_photo_keys = []
for photo in all_photos:
all_photo_keys.append(str(photo.blob_key.key()))
return all_photo_keys, total_number_of_photos, total_number_of_pages
我已經更好地使用緩存並更改了PhotosModel,使blob_key是實際的鍵(字符串)而不是ReferenceProperty。僅此一項就大大減少了小數據存儲查詢的數量 – user714852 2012-02-15 18:28:14
@ user714852酷! – 2012-02-15 18:45:23