0

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

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

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

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

4

3 回答 3

1

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

于 2013-04-09T14:02:40.760 回答
0

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

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

这绝对可以加快您的应用程序访问速度。我不认为 App Engine Datastore 是为速度而设计的,而是为可扩展性而设计的。然而,Memcache 是。

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

两者都有积极的社区支持。我在本地环境中使用 CapeDwarf,它仍处于测试阶段,但它可以工作。

于 2013-04-09T07:40:43.140 回答
-1

移动到任何内存数据库。如果您有 Oracle 数据库,则使用TimesTen将成倍地提高吞吐量。

于 2013-10-10T09:01:50.247 回答