首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql简单查询需要更长的时间

mysql简单查询需要更长的时间
EN

Stack Overflow用户
提问于 2012-06-25 21:04:11
回答 1查看 98关注 0票数 0
代码语言:javascript
复制
select marksymbol,round(avg(p.closerate * p.out_share),2)
from price p
where trandate >= '2000/06/05' and trandate <= '2012/06/22' and p.markcode='RD'
group by marksymbol

在具有2 2gb内存的本地计算机上花费0.064s,在服务器上花费1分30.38秒。

我在本地计算机上运行Windows。服务器在Linux下运行MySQL。

两台机器上的数据库方案是相同的。它们具有相同的索引和主键。

还有哪些其他因素会影响此查询的性能?

EN

回答 1

Stack Overflow用户

发布于 2012-06-25 21:30:30

它们被正确地编入索引,但它们的大小是否相同?Linux服务器上的表比测试Windows服务器上的表大吗?

有几个地方可以帮助你解决这个问题。

1:对查询本身进行解释,让mysql告诉您发生了什么。

http://dev.mysql.com/doc/refman/5.0/en/explain.html

如果你已经安装了phpmyadmin,那么你只需要点击“解释”,它会自动为你做这件事(用漂亮的饼图),你可以通过这种方式识别瓶颈。

2:服务器上的内存使用情况。使用命令

免费-m

vmstat

查看有多少内存可用。您的系统可能正在为您的查询执行代价高昂的交换操作。

3:优化查询本身。从外观上看,您正在使用字符串比较进行日期搜索。您可以利用mysql中强大的Datetime功能来加快日期比较的速度。但是,我怀疑这是您的瓶颈,所以请先检查前两个选项。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11189929

复制
相关文章

相似问题

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