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找出引擎盖下发生的事情(Yanks 引擎盖)。然后您就可以创建适当的索引了。

可以通过表定义或通过create index 创建索引研究优化也很有用

于 2013-03-08T13:32:45.613 回答
0

在 where 字段上添加索引以提高速度。

于 2013-03-08T13:29:14.477 回答