2011-09-30 78 views
4

我有一個非常簡單的數據庫查詢: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())) { 
// ... 
} 

所以這是簡單的搜索給定名稱的所有條目。該名稱不是唯一的,包含最多16個字符。據我所知,短字符串(< 500個字符)的索引是自動生成的。

表中約有100000個條目。數據庫請求需要8秒以上才能獲取所有(約10個)實體。

現在的問題是如何加快它?

+0

這些實體總數有多大? – bdonlan

+1

實體很小。總共:3個整數,1個字符串和1個日期。 – styrr

+0

這是在生產中還是在SDK中的開發應用程序服務器? – bdonlan

回答

5

開發應用程序服務器的性能不代表生產性能。特別是,開發人員應用程序服務器不使用索引。 根本就是。每個查詢只是掃描該類型的每個實體。

所以不要將那麼多的數據插入開發應用服務器。使用它來測試基本功能,然後部署並將您的1000000個實體插入到生產應用程序引擎應用程序服務器中,而不是實際生成和使用索引。

+2

還可以選擇將應用程序(技術上是單獨的應用程序)的測試版本部署到性能測試。 –

相關問題