Google App Engine:如何加快短字符串属性的数据库查询?

sty*_*yrr 4 java google-app-engine

我有一个非常简单的数据库查询:

Query q = new Query("person");
q.addFilter("name", Query.FilterOperator.EQUAL, req.getParameter("n"));
PreparedQuery pq = datastore.prepare(q);
for (Entity result : pq.asList(FetchOptions.Builder.withDefaults())) {
// ...
}
Run Code Online (Sandbox Code Playgroud)

因此,只需搜索给定名称的所有条目即可.该名称不是唯一的,包含最多16个字符.据我所知,短字符串的索引(<500个字符)是自动生成的.

在表中约有100000个条目.数据库请求需要8秒以上才能获取所有(大约10个)实体.

现在的问题是如何加快速度?

bdo*_*lan 5

dev appserver的性能并不代表生产性能.特别是,dev appserver不使用索引.完全没有.每个查询只扫描该类型的每个实体.

所以不要将那么多数据插入到dev appserver中.使用它来测试基本功能,然后部署,并将1000000个实体插入到生产应用程序引擎应用程序服务器中,而实际生成和使用索引.

  • 您还可以选择将应用程序的测试版本(技术上是一个单独的应用程序)部署到性能测试中. (2认同)