Php 如何在网站上显示200k条可选记录
我的网站有一个大问题,我有这个功能从数据库中获取所有类别:-Php 如何在网站上显示200k条可选记录,php,Php,我的网站有一个大问题,我有这个功能从数据库中获取所有类别:- public function selectallcatdata() { $query = mysql_query("select Category_name,Category_id from category where Category_delete='0'"); return $query; mysql_free_result($query); } 我在选择类型时使用此函数,如下所示:- <sel
public function selectallcatdata()
{
$query = mysql_query("select Category_name,Category_id from category where Category_delete='0'");
return $query;
mysql_free_result($query);
}
我在选择类型时使用此函数,如下所示:-
<select name="txtCompanyCat" id="txtCompanyCat">
<option selected value="">choose the Category ... </option>
<?php
$CategoryNameData = $select -> selectallcatdata();
while($CatNameRow = mysql_fetch_array($CategoryNameData)){
$CatID = $CatNameRow['Category_id'];
$CatName = $CatNameRow['Category_name'];
?>
<option value="<?php echo $CatID; ?>"><?php echo $CatName; ?></option>
<?php }
unset($CatID);
unset($CatName);
?>
</select>
选择类别。。。
我建议,如果是静态查询,可以缓存结果,而不是每次都获取结果。它肯定是第一次加载,但对于以后的请求,这不会是一个问题。我建议,如果是静态查询,您可以缓存结果,而不是每次都获取它。这肯定是第一次加载,但对于以后的请求,这不会是一个问题。您是否尝试过对您的站点进行基准测试,以找出延迟的原因?我相当肯定,有这么多记录,这是查询时间和渲染时间。只是数据太多了。为数据库查询实现一些缓存在一端可能会有所帮助,但我认为数据库并不是这里的主要问题
您必须避免显示所有类别。没有其他方法可以处理这样的事情。我可以想象两种方法可能对你有用:
您尝试将类别排序为几个超级类别,然后
用户首先选择其中一个超级类别,然后选择
属于它的类别将被延迟加载(可能通过AJAX)
不是显示所有类别,而是提供一个输入字段,该字段将显示
基于用户在字段中键入的内容的建议类别
通过分析所有类别,尝试导出匹配类别的列表可能是一个好主意
用户输入的其他数据。考虑到可用值的数量,它实际上可能
值得花时间构建一个文本挖掘方法来处理这个问题
最明显的是减少类别的数量,但我想这是不可能的
哦,还有一个附带说明:return
提前结束函数执行,因此您的mysql\u free\u结果($query)代码>将永远无法访问。不管怎么说,这地方放错了。一旦处理完毕,您应该释放结果。您是否尝试过对站点进行基准测试以找出延迟的原因?我相当肯定,有这么多记录,这是查询时间和渲染时间。只是数据太多了。为数据库查询实现一些缓存在一端可能会有所帮助,但我认为数据库并不是这里的主要问题
您必须避免显示所有类别。没有其他方法可以处理这样的事情。我可以想象两种方法可能对你有用:
您尝试将类别排序为几个超级类别,然后
用户首先选择其中一个超级类别,然后选择
属于它的类别将被延迟加载(可能通过AJAX)
不是显示所有类别,而是提供一个输入字段,该字段将显示
基于用户在字段中键入的内容的建议类别
通过分析所有类别,尝试导出匹配类别的列表可能是一个好主意
用户输入的其他数据。考虑到可用值的数量,它实际上可能
值得花时间构建一个文本挖掘方法来处理这个问题
最明显的是减少类别的数量,但我想这是不可能的
哦,还有一个附带说明:return
提前结束函数执行,因此您的mysql\u free\u结果($query)代码>将永远无法访问。不管怎么说,这地方放错了。一旦处理完毕,您应该释放结果。包含251932项的选择框几乎不实用。我建议您在前端使用AJAX自动完成,这将允许您一次获取较少的结果。
其中有一些,还有更多。你可以根据自己的要求挑选。与一个普通的选择非常好;前一段时间我做过这项工作。一个包含251932项的选择框几乎不实用。我建议您在前端使用AJAX自动完成,这将允许您一次获取较少的结果。
其中有一些,还有更多。你可以根据自己的要求挑选。与一个普通的选择非常好;我前一段时间做过这个工作。将选择框更改为搜索框,然后ajax调用php。将选择框更改为搜索框,然后ajax调用php。问题是什么?他将在选择框中显示251932个类别,他能减少负载吗?问题是什么?如何加载?我认为问题不在于检索他想要查看的行吗?目标是什么@CodeFreak当打开我的网站时,此部分不会打开,但在30分钟后打开251932
任何用户都会停止使用类别,而是使用@partoa改进的ajax
。问题是什么?他将在选择框中显示251932个类别,他能减少该负载吗?问题是什么?如何加载?我认为问题不在于检索他想要查看的行吗?目标是什么@CodeFreak当打开我的网站时,此部分不会打开,但在30分钟后打开251932
任何用户都会停止使用类别,而使用@partoa改进的ajax