减少GAE hrd(db)读取操作计数

2024-10-01 22:35:57 发布

您现在位置:Python中文网/ 问答频道 /正文

为了降低GAE Python的使用成本,我想优化DB read操作。你有什么建议吗?在

我不明白为什么GAE显示了比我想象的更多的DB-read操作。GADB的运算应该是很有帮助的。在

谢谢!在


Tags: readdb建议成本想象gaegadb
2条回答

很难说为什么没有看到您的代码,但如果您还没有看到,请使用memcache来节省数据库读取。在

https://developers.google.com/appengine/docs/python/memcache/usingmemcache

在这里-https://developers.google.com/appengine/docs/billing(向下滚动大约一半),您可以得到高级操作(get、query、put、delete,…)在低级操作(小、读、写)中所花费的全部成本。在

我强烈建议使用AppStats来帮助跟踪读取操作的来源。{{{1}仍然是一个值得注意的问题,因为这是一个非常重要的选项。这意味着如果你做.fetch(10, offset=20),你将花费30次阅读。您想改用query cursors。在

另一个优化是按键(^{})进行取数,而查询只需花费1个读取操作,而不是查询哪个查询花费1个读操作,每个实体返回1个读操作(因此,一个有1个实体的查询返回2个读操作,但是同一个实体的.get()只需要1个读操作。您可能还想看看使用projection queries,它的查询开销是1个read,但是每个检索到的投影实体只有1个小值(注意:所有投影的属性都必须被索引)。在

另外,如果您还没有,您应该使用NDB API,它会自动caches获取,并有助于减少读取操作。与官方文档一起,Rodrigo和Guido的NDB cheat sheet是从外部数据库去ndb。在

管理数据存储使用下面有一些好的提示: https://developers.google.com/appengine/articles/managing-resources

最后,您可能还对使用gae_mini_profiler感兴趣,它为当前请求提供了对AppStats的方便访问,以及其他有用的分析和日志信息。在

相关问题 更多 >

    热门问题