2015-02-24 90 views
0

我有一個大小爲50GB的數據庫,其中的列數是12個。我在少數列上有索引。我無法從簡單的查詢中獲得結果。簡單的數據庫查詢-GAE cloudSQL

SELECT id, subscriber, name, time_ac, type,message, UNIX_TIMESTAMP(time_ac) AS time FROM logs WHERE domain = 'domain' AND type = 'type' ORDER BY time DESC LIMIT 20 OFFSET 0; 

我有id,訂戶,名稱,time_ac,類型,域的索引。

我不能很快得到結果。我正在使用GAE,所以我有60秒的時間才能獲得當前查詢失敗的結果。

+1

如果您沒有*能夠快速獲得結果,那麼您可以立即返回給用戶,但可以使用令牌在準備就緒時獲得結果。因此,該頁面可能偶爾「輪詢」服務器,直到結果準備就緒。 – 2015-02-24 13:36:29

+0

對於50GB的數據集,您可以嘗試Big Query並針對您的特定案例比較性能。 – 2015-02-25 15:02:13

回答

1

爲了讓你查詢工作更快,你可以添加一個多列索引,爲您domain + type + time列(或至少domain + type):

CREATE INDEX idx ON logs (domain, type, time); 

如果您對剛剛單獨的索引幾列,只使用它們中的一個,並且所有其他列都是在沒有索引的情況下處理的。請查看EXPLAIN以進行查詢。