Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在网站上显示200k条可选记录_Php - Fatal编程技术网

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