私は Google App Engine と Python にかなり慣れていませんが、それを使って実際のサイトを初めてリリースしました。しかし今、他のパスよりも大幅に多くの CPU (および API CPU) 時間を使用している 1 つのパスで問題が発生しています。問題の原因となっている単一のデータストア フェッチに絞り込みました。Carvings.all().fetch(1000)
App Engine ダッシュボードの下では、そのパスへの各リクエストに対してかなり確実に「1040cpu_ms 846api_cpu_ms」が報告されています。これが、私のクライアントがサイト全般で経験した無反応の原因である可能性があるようです.
したがって、このクエリの何がそれほど高価なのかわかりません。関連するデータモデルは次のとおりです。
class Carving(db.Model):
title = db.StringProperty(required=True)
reference_number = db.StringProperty()
main_category = db.StringProperty()
sub_category = db.StringProperty()
image = db.ReferenceProperty(CarvingImage)
description = db.TextProperty()
price = db.FloatProperty()
size = db.StringProperty()
material = db.StringProperty()
added_at = db.DateTimeProperty(auto_now_add=True)
modified_at = db.DateTimeProperty(auto_now=True)
このモデルをデータストアからプルするとき、アプリの他の場所でさらにフィルタリングを行いますが、それが問題を引き起こしていない理由だと思います。しかし、このモデルのエンティティの総数は 90 をわずかに超えており、なぜこれがそれほど高価なのか想像できません。