mysql简单查询耗时较长 选择标记符号,四舍五入(平均(p.closerate*p.out\U share),2) 从价格p 其中,trandate>='2000/06/05'和trandate

mysql简单查询耗时较长 选择标记符号,四舍五入(平均(p.closerate*p.out\U share),2) 从价格p 其中,trandate>='2000/06/05'和trandate,mysql,performance,Mysql,Performance,索引正确,但大小是否相同?Linux服务器上的表是否明显大于测试Windows服务器上的表 有几个地方可以帮助你解决这个问题 1:对于查询本身,您解释让mysql告诉您发生了什么 如果您安装了phpmyadmin,只需单击“解释”,它就会自动为您解释(使用漂亮的饼图),您可以通过这种方式识别瓶颈 2:服务器上的内存使用情况。使用命令 自由-m 及 虚拟机 查看有多少内存可用。您的系统可能为您的查询进行了代价高昂的交换 3:优化查询本身。从外观上看,您正在使用字符串比较进行日期搜索。您可以利用m

索引正确,但大小是否相同?Linux服务器上的表是否明显大于测试Windows服务器上的表

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

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

如果您安装了phpmyadmin,只需单击“解释”,它就会自动为您解释(使用漂亮的饼图),您可以通过这种方式识别瓶颈

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

自由-m

虚拟机

查看有多少内存可用。您的系统可能为您的查询进行了代价高昂的交换


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

它们的索引正确,但大小是否相同?Linux服务器上的表是否明显大于测试Windows服务器上的表

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

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

如果您安装了phpmyadmin,只需单击“解释”,它就会自动为您解释(使用漂亮的饼图),您可以通过这种方式识别瓶颈

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

自由-m

虚拟机

查看有多少内存可用。您的系统可能为您的查询进行了代价高昂的交换


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

服务器上有多少数据?您是否手动安装mysql?或者只是键入命令并自行安装?最近我经常遇到这种情况。不知道为什么!如果你问这个问题,也会更好。可能会得到适当的解释…服务器上有多少数据?您是否手动安装mysql?或者只是键入命令并自行安装?最近我经常遇到这种情况。不知道为什么!如果你问这个问题,也会更好。可能会得到适当的解释…谢谢回复。我会试试你建议的解决办法。同时,我创建新表并将现有表日期复制到新表。旧表包含1.8mn记录。然后我在新表上运行相同的查询,它在8.43s中回复。我不知道为什么我用like命令复制结构。如果您有任何建议,请检查旧表,然后让我知道,谢谢。我猜可能是该表已严重碎片化。你试过优化桌子吗?谢谢你的回复。我会试试你建议的解决办法。同时,我创建新表并将现有表日期复制到新表。旧表包含1.8mn记录。然后我在新表上运行相同的查询,它在8.43s中回复。我不知道为什么我用like命令复制结构。如果您有任何建议,请检查旧表,然后让我知道,谢谢。我猜可能是该表已严重碎片化。你试过优化桌子吗?
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