使用appengine提高数据库记录检索吞吐量

时间:2013-04-09 03:53:08

标签: google-app-engine

使用AppEngine和Python以及HRD顺序检索记录(通过索引字段,这是一个递增的整数时间戳),我们在30-45秒内返回15,000条记录。 (使用批处理和限制。)我尝试并行地对两个实例进行查询,但仍然实现了相同的总吞吐量。

有没有办法在不更改任何代码的情况下改善此总数?我希望我们可以支付更多费用并获得更好的数据库吞吐量。 (您可以为更大的前端支付更多费用,但这不会影响数据库吞吐量。)

我们将更改代码以将多个基础数据项存储在一个数据库记录中,但希望有一个短期的解决方法。

编辑:这些是正在下载到另一个系统的日志记录。我们将在未来修复它并知道如何操作,但我宁愿先处理更重要的事情。

3 个答案:

答案 0 :(得分:1)

尝试拆分不同实体组的记录。这可能会迫使他们去不同的物理服务器。从多个线程或实例并行读取实体组。 使用缓存不适用于大型表。

答案 1 :(得分:0)

也许你可以缓存你的记录,比如使用Memcache:

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

这肯定可以加快您的应用程序访问速度。我不认为App Engine数据存储区是为速度而设计的,而是可伸缩性。然而,Memcache是​​。

顺便说一句,如果您意识到GAE根据您支付的费用提供的性能,那么您可以尝试使用以下方式设置自己的App Engine云:

两者都有积极的社区支持。我在我的本地环境中使用CapeDwarf它仍然在BETA中但是它有效。

答案 2 :(得分:-1)

移至任何内存数据库。如果您拥有Oracle数据库,则使用TimesTen可以将吞吐量提高多倍。