我有一个包含多个MySQL记录的MtgoxTrade(id,time,price,amount,type,tid)表,我需要从所有记录中查询三个字段(时间、价格、数量):
SELECT time, price, amount FROM MtgoxTrade;它在Win7上花费了110秒,太慢了,我的问题是:
WHERE子句。更新:很抱歉,MtgoxTrade表总共有6个字段:(id、时间、价格、数量、类型、tid)。我的SQL只需要查询三个字段(时间、价格、数量)。我已经尝试过在(时间、价格、数量)上添加综合指数,但似乎没有帮助。
发布于 2013-09-22 11:05:45
如果这是你真正的疑问-不,什么也帮不上忙。想想看--你是在要求交付整个500M+表的内容!不管你做什么,它都会很慢--整个桌子都必须被处理。
如果您可以约束您的程序逻辑只处理表的一些较小的子集,那么就有可能使它更快。
例如,您只能使用WHERE子句处理上个月的结果:
SELECT time, price, amount
FROM MtgoxTrade
WHERE time BETWEEN '2013-09-01' AND '2013-09-21'这可以非常快地工作,但是仍然需要在time字段中添加索引,如下所示:
CREATE INDEX mtgoxtrade_time_idx ON mtgoxtrade (time);https://stackoverflow.com/questions/18943058
复制相似问题