2015-02-24 52 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以进行查询。