У меня есть модель с большим количеством свойств, и когда я пытаюсь записать ее, в журналах появляется предупреждение о том, что запрос занимает слишком много процессорного времени (более 1000 cpu_ms и более 8000api_cpu_ms).
Следующая тестовая программа демонстрирует проблему:
class TestModel(db.Model):
user = db.UserProperty()
p1 = db.StringProperty()
p2 = db.StringProperty()
p3 = db.StringProperty()
p4 = db.StringProperty()
p5 = db.StringProperty() # 475cpu_ms with 1..5 only
p6 = db.StringProperty()
p7 = db.StringProperty()
p8 = db.StringProperty()
p9 = db.StringProperty()
p10 = db.StringProperty() # 760cpu_ms with 1..10 only
p11 = db.StringProperty()
p12 = db.StringProperty()
p13 = db.ListProperty(unicode)
p14 = db.ListProperty(int)
p15 = db.ListProperty(int)
p16 = db.BooleanProperty()
p17 = db.DateTimeProperty() #over 1000cpu_ms with all these
class DebugitHandler(webapp.RequestHandler):
def get(self):
instance = TestModel()
instance = instance.put()
self.response.out.write("Done.")
Все время ЦП затрачивается на этот один .put()
вызов.
Кроме разделения модели на более чем один (который, вероятно, выигралне поможет, так как у меня все равно будет такое же количество свойств) есть ли способ обойти эту проблему?способ поместить 1 экземпляр с 20 свойствами в хранилище данных, не занимая более 1 секунды процессорного времени?