代码之家  ›  专栏  ›  技术社区  ›  Emmanuel

PHP数组vs MYSQL查询速度优化

  •  -1
  • Emmanuel  · 技术社区  · 16 年前

    我正在努力使我的php-mysql驱动的页面尽可能快。 我有一个相当标准的网站,有一个左栏菜单,上面有文章和菜谱列表(从数据库加载),然后在主要内容上有一些随机更改的文章,带有剪辑预览和随机菜谱。

    $s = s("SELECT * FROM `pages` WHERE `visible`='1' ORDER BY `group` ASC, `date` DESC");
       while($r=mysql_fetch_assoc($s)) $hPage[]=$r;
       $hPage_count = count($hPage);
       $hPage_keys = array_keys($hPage);
       $hPage_size = sizeOf($hPage_keys);
    

    然后我简单地引用并搜索这个数组,查找页面不同部分所需的所有数据。

    我的一个环看起来像

    for ($i=0; $i<$hPage_size; $i++){
    $c = $hPage[$hPage_keys[$i]];
    if($c['group']==1){
    $type[$c['type']][count($type[$c['type']])] = array('title'=>$c['title'],'url'=>$c['url']);
    }
    }
    

    我要知道的是,这是最快的方法吗?只使用一个SQL查询,将所有内容加载到一个php数组中,然后使用该数组,还是使用多个SQL查询更好?

    谢谢你的帮助。

    2 回复  |  直到 16 年前
        1
  •  3
  •   easel    16 年前

    根据经验,在尽可能少的数据库调用中提取所需的所有信息对应用程序性能是一件好事。假设你没有把一大堆你不需要的信息放在页面上,我想你可能已经在正确的轨道上了。

    因为您实际上是在使用数据库进行查询,所以您需要确保查询也得到了很好的优化。

    但是,正如所有与性能相关的事情一样,真正了解性能的唯一方法是使用度量和探查器,并且只有在确实需要提高性能的情况下才这样做。

        2
  •  0
  •   Tim    16 年前

    数据库在生活中的唯一目的是收集、组织、处理和返回数据。最好让它去做它最擅长的事情。然而,数据库往往是最大的瓶颈。减少查询次数,确保每次通话都有记录。