2012-05-07 106 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?