私は、pythonを使ってAppengineの基本的な写真アルバムを作成しています。27次のメソッドを使って、特定の "冒険"と一致するデータの詳細を取得します。私はページ分割に限界とオフセットを使用していますが、非常に非効率です。 5ページ(1ページに5枚の写真)の閲覧後、私はすでにDatastore Small Operationsの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
私は、blob_keyがReferencePropertyではなく実際のキー(文字列)であるように、キャッシュを使いやすくし、PhotosModelを変更しました。これだけで、小さなデータストアクエリの数が大幅に減少しました – user714852
@ user714852 cool! –