0

データベースには、以下のクエリに基づいて約300000レコードを含むアカウントの詳細テーブルがありますテーブル、アカウント名、および選択した会社の値を年ごとに、ほぼ40行と13列でレポートを表示する必要があります

質問があります、

$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分かかることはほとんどありません。クエリの実行を改善して印刷を高速化する方法を教えてください

4

3 に答える 3

2

これらの列が常に一緒に検索される場合は、それらに索引を定義します。

ALTER TABLE balancesheet ADD INDEX (formula, year, nse_code)
于 2013-03-08T13:29:11.757 に答える
1

EXPLAINを使用して、ボンネット (ヤンクのフード) の下で何が起こっているかを調べます。これで、適切なインデックスを作成できるようになります。

インデックスは、テーブル定義またはcreate indexを介して作成できます。最適化を調べることも役立ちます

于 2013-03-08T13:32:45.613 に答える
0

where フィールドにインデックスを追加して速度を向上させます。

于 2013-03-08T13:29:14.477 に答える