2012-05-07 79 views
1

此查询需要大约10秒来执行第一次,然后将每个连续的时间需要一分钟的向上:慢MySQL查询 - 选择

SELECT qQuoteDateTime, 
     qLastSalePrice, 
     qNetChangePrice, 
     qNetChangePct, 
     qShareVolumeQty 
    FROM quotes 
    WHERE qSymbol='GE' 

我使用的表中有2300条记录。我看到有人实现了一个快速查询来显示所有记录,但我无法访问他使用的代码。

如何加快速度?

+0

什么数据类型是你所有的列?您能否请您将DDL发布为您的常识和reko_t都是正确的。如果你所有的列都是nchar或blob等,那么这可能更有意义。 – Ben

+0

数据的“大小”是什么?几KBs,几MB更多?我曾经有过与MySQL数据类似的问题;我有几百行,但表的大小是〜1.5GB;遍历大量的数据可能需要几秒钟的时间。 –

回答

4

在查询上运行一个EXPLAIN,看看它为什么很慢。最可能的原因是qSymbol列缺少索引。在列上创建索引时,如果缺少索引,并且您应该看到性能有相当大的提升,因为MySQL不必扫描表中的每一行,但可以从索引中查找相应的行。

+0

@Downvoter:关心评论? –

+0

为什么这会降低投票率?看起来像对我完美的回应.. – dirkbonhomme

+1

对于2300行,它不能是10秒,直到分钟没有索引。这只是一般信息的自动回答,没有帮助任何人,只能得到代理点 –

3

数据库有问题。或者你在吠叫错误的树。
您在此处发布的查询应该快速获取给定的行数。

首先确保它的查询,而不是其他任何东西导致它。
您是否尝试从控制台运行此查询?的phpMyAdmin?结果是一样的吗? 你是否偶尔在循环中运行它?
行数真的是2300,而不是2300000?