2013-03-08 81 views
0

在數據庫中,我有帳戶詳細信息表,根據下面的查詢包含大約300000條記錄,我必須在年度表中顯示報表,帳戶名和選定的公司值,近40行和13列找到SUM時查詢執行速度

我有查詢,

$sql = ("SELECT sum(value) as val FROM balancesheet where formula='$formulaid' and year='$year' and nse_code='$companyCode'"); 

基礎上,今年,公司和公式,這裏公式字段,想,如果公式爲1點+ 2點+ 3點的手段,在 查詢將在循環內執行3次,並通過父循環繼續執行

O/P:將像

 2012  2011  2000......... 
account name1 15.00  16.08 47.55 
account name2 15.00  16.08 47.55 
....... 

所以幾乎不它需要4至5分鐘進行打印。 請幫助我如何提高查詢的執行以打印速度更快

+0

您在表中定義了哪些鍵? – 2013-03-08 13:29:06

+0

你能否詳細說明'配方'的工作原理? – 2013-03-08 13:33:28

回答

2

如果這些列總是會一起搜索,他們定義的索引,

ALTER TABLE balancesheet ADD INDEX (formula, year, nse_code) 
+0

@MarinSagovac呃什麼? – 2013-03-08 13:35:06

0

添加在哪裏領域,以提高速度指標。

1

使用EXPLAIN找出發動機蓋下的情況(Yanks的罩)。然後你就可以創建合適的索引。

索引可以通過表格定義或通過create index創建。查看optimize