现在的操作方法是:
<select class="xxx-select2 small" id="top_s1" onchange="c_cat1(this.value)">
<option value="-1" >{$Think.lang.plz_choose}</option>
<option value="0"<eq name="Think.get.lv_1" value="0">selected="selected"</eq> >{$Think.lang.add} {$Think.lang.top_level} {$Think.lang.category}</option>
<volist name=":getListC('front_catelog','front_catelog_pid=0')" id="lv1_1">
<volist name=":getListCX('front_catelog_lang','front_catelog_id',$lv1_1['front_catelog_id'])" id="lv1_2">
<eq name="lv1_2.lang_id" value="$op_lang_id">
<option value="{$lv1_1.front_catelog_id}" <eq name="lv1_1.front_catelog_id" value="$Think.get.lv_1">selected="selected"</eq> >{$lv1_2.front_catelog_name}</option>
</eq>
</volist>
</volist>
</select>问题是:关系表有6000条数据,每个数据对应12条语言内容数据,语言内容数据表中就有7W+数据第一个getListC()已经加入了查询条件,避免了遍历全表,速度不敢恭维,还是查出来了;但是根据第一个volist出来的值,生产第二个list的时候,直接返回页面空白,应该是数据过多的原因照成的。
请教:怎么优化一下,是否有必要拆分数据表,或者有没有更好的方法处理。
最佳答案