首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对大型MySQL表进行性能优化?

问如何对大型MySQL表进行性能优化?
EN

Stack Overflow用户
提问于 2013-09-22 10:53:59
回答 1查看 673关注 0票数 0

我有一个包含多个MySQL记录的MtgoxTrade(id,time,price,amount,type,tid)表,我需要从所有记录中查询三个字段(时间、价格、数量):

代码语言:javascript
复制
SELECT time, price, amount FROM MtgoxTrade;

它在Win7上花费了110秒,太慢了,我的问题是:

  1. 复合指数对此有帮助吗?请注意,我的SQL查询没有WHERE子句。
  2. 这里还可以进行任何其他优化来提高查询性能吗?

更新:很抱歉,MtgoxTrade表总共有6个字段:(id、时间、价格、数量、类型、tid)。我的SQL只需要查询三个字段(时间、价格、数量)。我已经尝试过在(时间、价格、数量)上添加综合指数,但似乎没有帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-22 11:05:45

如果这是你真正的疑问-不,什么也帮不上忙。想想看--你是在要求交付整个500M+表的内容!不管你做什么,它都会很慢--整个桌子都必须被处理。

如果您可以约束您的程序逻辑只处理表的一些较小的子集,那么就有可能使它更快。

例如,您只能使用WHERE子句处理上个月的结果:

代码语言:javascript
复制
SELECT time, price, amount
FROM MtgoxTrade
WHERE time BETWEEN '2013-09-01' AND '2013-09-21'

这可以非常快地工作,但是仍然需要在time字段中添加索引,如下所示:

代码语言:javascript
复制
CREATE INDEX mtgoxtrade_time_idx ON mtgoxtrade (time);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18943058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档