说下算法的重要性。
uuq 2005-01-09 10:23:59 有用户说我以前做的页面打开太慢,我查出来是以前自已做一个树形下拉菜单拖慢的。
情况如下。
数据表有四个字段
artcleID,fatherID,artcleName,isSub
artcleID:是本表唯一字段ID
fatherID:是父类artcleID值.以前我想减少查数据次数据以没有让fatherID等于artcleID
isSub:是标记是否为子类,0表示为父类。1表示为子类
artcleName:是标题字符串
$sql="select artcleID,fatherID,artcleName,isSub from ppw_artcle where type='XXX' order by isSub asc";因为fatherID在父级为0,所以按这个值排序也没有什么作用
我自已也想懒得去改,但是还是发现了算法的有误,用了两个for循环,数据大时是直接耗时间的杀手。
经过我两三小时的改进,发现改进后速度N次方倍。
原来代码:
是这样
用while取得查询数据库数据组。
再用两个
for($i;$i<$total;$i++)
{
if($artcleArr[isSub]==0)
{
处理父类
for($j;$j<$total;$j++)
{
处理父级下子类
}
}
}
这些处理变成耗total*total个处理单位。
所以为影响时间。