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 在我的网站上按类别筛选结果很慢_Php_Mysql_Performance_Filtering_Categories - Fatal编程技术网

Php 在我的网站上按类别筛选结果很慢

Php 在我的网站上按类别筛选结果很慢,php,mysql,performance,filtering,categories,Php,Mysql,Performance,Filtering,Categories,我的网站有分类过滤器,因为有很多,网站是非常缓慢的 每个过滤器返回主数据库的结果表 有人知道加快速度的技巧吗 每个筛选器都是主表中包含6000条记录的查询 一些网站按类别使用此功能结果,但我想知道如何更优化地使用此功能 解决方案: 我只使用一个返回所有寄存器的查询,使用php函数,我使用数组返回每个过滤器的寄存器总数 简化伪代码: $cont = array(); $res = mysql_query("SELECT field FROM info"); while($x = mysql_f

我的网站有分类过滤器,因为有很多,网站是非常缓慢的

每个过滤器返回主数据库的结果表

有人知道加快速度的技巧吗

每个筛选器都是主表中包含6000条记录的查询

一些网站按类别使用此功能结果,但我想知道如何更优化地使用此功能

解决方案:

我只使用一个返回所有寄存器的查询,使用php函数,我使用数组返回每个过滤器的寄存器总数

简化伪代码:

$cont = array();

$res = mysql_query("SELECT field FROM info");

while($x = mysql_fetch_array($res)){
    if ($x['field'] == "val1")
        $cont['val1'] ++;

    if ($x['field'] == "val2")
        $cont['val2'] ++;
}

echo "Filter val1: ".$cont['val1'];
echo "Filter val2: ".$cont['val2'];

向我展示您的SQL查询,请简化查询,筛选器使用索引,而不使用order by。每个网站在下面的查询中都有一个过滤器。示例:Baú(100个结果)使用查询:从frete中选择COUNT(id)作为qtd,其中idtype=1;Caçamba(1.234个结果)使用查询:从frete中选择COUNT(id)作为qtd,其中idtype=2;Baixa等级(432个结果)使用以下查询:从FRET中选择计数(id)作为qtd,其中idtype=3;-过滤器每页有几个类别,大约35个我在“idtype”字段上有“index”-该网站有500名用户在线服务器设置:内存:8GB CPU:4x 1500 Mhz链接:4MBresultados西班牙语,查看结果?从frete(其中idtype=1)运行解释选择计数(id)作为qtd,从frete(其中idtype=2)运行解释选择计数(id)作为qtd,并将输出结果发布到巴西葡萄牙语中。查询:解释选择计数(id)作为FRET的qtd,其中codtype=14;结果:选择类型:简单型;表:FRET;类型:ref;可能的_键:特别;重点:特殊性;重点:4;参考:常数;第2.344行;密码,否则就不会发生