MySQL和PHP优化搜索

时间:2014-07-17 04:30:46

标签: php mysql search

我目前有一个伙伴系统需要大量查询并且拥有大量用户。我搜索特定用户的方法工作了一段时间,直到条目数量开始达到数十万。我目前搜索用户的方式是这样的:

            $results = mysql_query("SELECT * FROM Info");           
            while($row = mysql_fetch_array($results)){
                $ignFromDB = $row['IGN'];
                if($ignFromDB == $ign){
                    $friendsFromDB = $row['Friends'];
                    $frArr = explode(':', $friendsFromDB);
                    return $frArr;
                }
            }

由于我现在需要搜索成千上万的条目,因此它变得非常低效且缓慢。作为解决这个问题的一种方法,我决定每个用户只有一个搜索请求:在启动时,他们会请求他们的入口索引然后发送带有该索引的请求,所以我不需要循环。我只能选择带有该索引的条目。唯一的问题是我对MySQL知之甚少,我需要知道如何做到这一点。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:2)

对于一个WHERE条款而言,真是太棒了。你打算上市,购买所有的苹果,然后回家,然后开始检查你真正需要的数千个。为什么不简单地告诉店主您的要求并只获得所需的苹果。想象一下成本!你只需要

SELECT * FROM Info WHERE IGN='$ign'

就是这样

<强> Must Read: Warning About SQL Injection

答案 1 :(得分:0)

试试此代码

           $results = mysql_query("SELECT * FROM Info  WHERE IGN='$ign'");           
            while($row = mysql_fetch_array($results)){                      
                    $friendsFromDB = $row['Friends'];
                    $frArr = explode(':', $friendsFromDB);
                    return $frArr;                    
            }