2012-03-27 125 views
0

考慮以下MySQL的聲明優化慢查詢

SELECT AccountNumber, Currency, Balance 
FROM clients 
    JOIN balances ON clients.AccountNumber= balances.AccountNumber 
WHERE date > 「2009-01-01」 

查詢運行速度慢,請描述你是在試圖解決這個做什麼。

+1

你的索引和數據量是多少? – 2012-03-27 16:19:57

+0

請爲您的表格顯示CREATE TABLE ...。 – Devart 2012-03-27 16:20:39

+0

需要更多信息,隊友 – bernie 2012-03-27 16:20:45

回答

1

指數試試這個:

SELECT C.AccountNumber, C.Currency, B.Balance FROM clients C INNER JOIN balances B ON C.AccountNumber=B.AccountNumber WHERE C.date > 「2009-01-01」 

(我假設:從表餘額餘額字段)

0

使用的日期列

create index yourIndex on yourTable (date DESC); 
+0

看到dasblinkenlight的評論! – 2012-03-27 16:23:44

+0

假設應用程序只發布了三年,所以所有記錄的日期都大於2009年1月1日。現在索引的用途是什麼? – APC 2012-03-27 16:26:30

0

的日期聚集索引是良好的起動。這假定MySql支持聚簇索引(Sybase/Sql服務器)。