Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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_Doctrine - Fatal编程技术网

Php 条令查询运行缓慢为什么?

Php 条令查询运行缓慢为什么?,php,mysql,doctrine,Php,Mysql,Doctrine,有人能帮我吗 我正在使用条令运行查询 我为必要的表编制了索引和foriegnkey参考 这是我的问题 echo "step1";echo date('h:i:s A');echo "<br/>"; $query = new Doctrine_Query(); $whereCond =''; $where='eng.id='.$campid; $select=''; $search = '';

有人能帮我吗

我正在使用条令运行查询

我为必要的表编制了索引和foriegnkey参考

这是我的问题

echo "step1";echo date('h:i:s A');echo "<br/>";
        $query = new Doctrine_Query();
        $whereCond ='';
        $where='eng.id='.$campid;
        $select='';
        $search = '';
        /*if($queryv!=''){

             $where .= " AND c.".$quickSearchType." LIKE '%".$queryv."%' ";
        }*/
        if($letterPressed == 'All')
        {
            $where .="";
        }
        else if($letterPressed == 'Radian6')
        {
            $where .=" AND c.news_type = 1";
        }
        else if($letterPressed == 'Google News')
        {
            $where .=" AND c.news_type = 3";
        }
        else if($letterPressed == 'Google Blogs')
        {
            $where .=" AND c.news_type = 4";
        }
        else if($letterPressed == 'RSS Feeds')
        {
            $where .=" AND (c.news_type = 5 or  c.news_type = 6)";
        }
        else if($letterPressed == 'Hide Twitter')
        {
            $where .=" AND c.url NOT LIKE '%twitter.com%'";
        }
        else if($letterPressed == 'Hide Facebook')
        {
            $where .=" AND c.url NOT LIKE '%facebook.com%'";
        }
        else if($letterPressed == 'Hide Facebook-twitter')
        {
            $where .=" AND (c.url NOT LIKE '%twitter.com%' AND c.url NOT LIKE '%facebook.com%')";
        }
        else if($letterPressed == 'Show Twitter')
        {
            $where .=" AND c.url LIKE '%twitter.com%'";
        }
        else if($letterPressed == 'Show Facebook')
        {
            $where .=" AND c.url LIKE '%facebook.com%'";
        }
        else if($letterPressed == 'show Facebook-twitter')
        {
            $where .=" AND (c.url  LIKE '%twitter.com%' OR c.url LIKE '%facebook.com%')";
        }

        if($queryv!='' && $quickSearchType == 'title' && (trim($letterPressed) != 'Law' && trim($letterPressed) != 'LS Translate') ){

             $search = ' LOWER(c.title) LIKE "%'.mysql_real_escape_string($queryv).'%" ';
             //$search = ' LOWER(c.title) LIKE ?';
        }
        if($queryv!='' && $quickSearchType == 'domain')
        {
             $search = ' LOWER(c.domain) LIKE "%'.mysql_real_escape_string($queryv).'%" ';
             //$search = ' LOWER(c.domain) LIKE ?';

        }
        echo "step2";echo date('h:i:s A');echo "<br/>";

        $select='c.id, c.campaign_id, c.title as title, c.domain, c.news_type,c.url, c.active, c.article_date, c.created_date, c.modified_date, t.language_id, t.tr_translated_date, t.tr_translated_by, t.translation_state, t.tr_title, t.raw_title';
        if(trim($letterPressed) == 'Original')
        {
            $select='c.id, c.campaign_id, c.title as title, c.domain, c.news_type,c.url, c.active, c.article_date, c.created_date, c.modified_date, t.language_id, t.tr_translated_date, t.tr_translated_by, t.translation_state';
        }
        if(trim($letterPressed) == 'Law')
        {
            $select='c.id, c.campaign_id, c.domain, c.news_type,c.url, c.active,c.article_date, c.created_date, c.modified_date, t.raw_title as title, t.language_id, t.tr_translated_date, t.tr_translated_by, t.translation_state';
            if($queryv!='' && $quickSearchType == 'title'){

             $search = ' LOWER(t.raw_title) LIKE "%'.mysql_real_escape_string($queryv).'%"';
             //$search = ' LOWER(t.raw_title) LIKE ?';

            }
        }
        if(trim($letterPressed) == 'LS Translate')
        {
            $select='c.id, c.campaign_id, c.domain, c.news_type,c.url, c.active, c.article_date, c.created_date, c.modified_date, t.tr_title as title, t.language_id, t.tr_translated_date, t.tr_translated_by, t.translation_state';
            $where .=" AND t.translation_state = 1";
            if($queryv!='' && $quickSearchType == 'title'){

             $search = ' LOWER(t.tr_title) LIKE "%'.mysql_real_escape_string($queryv).'%" ';
             //$search = ' LOWER(t.tr_title) LIKE ?';
            }
        }
        $whereCond.=$where;  
        // , array("%".mysql_real_escape_string($queryv)."%")
        echo "step3";echo date('h:i:s A');echo "<br/>";
        $query->select($select)
              ->from('News c')
              ->where($whereCond)
               ->addWhere('eng.tr_language_id=t.language_id')
               ->andWhere('c.created_date >= DATE_SUB(CURDATE(),INTERVAL 90 DAY)' );
        if(!empty($search))
            $query->andWhere($search);     
        $query->leftJoin('c.TranslatedNews t on t.news_id = c.id')
              ->leftJoin('c.Campaigns eng on eng.id = c.campaign_id')            
              ->orderBy('c.'.$sortName. ' ' . $sortOrder)
              ->groupBy('c.title')
              ->addGroupBy('c.url')
              ->limit(10);
            echo "step4";echo date('h:i:s A');echo "<br/>"; 
            //echo $query->getSqlQuery();exit;
            $result = $query->execute(array(),Doctrine::HYDRATE_ARRAY);
            echo "step5";echo date('h:i:s A');echo "<br/>";exit;
            return $result;
echo“step1”;回音日期('h:i:SA');回声“
”; $query=新原则_query(); $whereCond=''; $where='eng.id='。$campid; $select=''; $search=''; /*如果($queryv!=''){ $where.=”和c.“$quickSearchType.”类似“%”“%$queryv.”%”; }*/ 如果($letterPressed=='All') { $where.=”; } 如果($letterPressed=='Radian6') { $where.=“和c.news_type=1”; } 如果($letterPressed=='googlenews') { $where.=“和c.news_type=3”; } 如果($letterPressed=='googleblogs') { $where.=“和c.news_type=4”; } 如果($letterPressed=='RSS提要') { $where.=“AND(c.news_type=5或c.news_type=6)”; } 如果($letterPressed=='Hide Twitter') { $where.=“和c.url与“%twitter.com%”不同; } 如果($letterPressed=='Hide Facebook') { $where.=“和c.url不象“%facebook.com%”; } 否则如果($letterPressed=='Hide Facebook twitter') { $where.=“和(c.url不象'%twitter.com%'和c.url不象'%facebook.com%'”; } 如果($letterPressed=='Show Twitter') { $where.=“和类似“%twitter.com%”的c.url; } 否则,如果($letterPressed=='Show Facebook') { $where.=“和类似于“%facebook.com%”的c.url”; } 如果($letterPressed=='show Facebook twitter') { $where.=“和(类似于“%twitter.com%”的c.url或类似于“%facebook.com%”的c.url)”; } 如果($queryv!=''&&$quickSearchType=='title'&&($letterPressed)!='Law'&&trim($letterPressed)!='LS Translate')){ $search='较低的(c.title),如“%”。mysql_real_escape_string($queryv)。“%”; //$search='较低的(c.title)像?'; } 如果($queryv!=''&&$quickSearchType=='domain') { $search='较低的(c.domain)如“%”。mysql_real_escape_string($queryv)。“%”; //$search='LOWER(c.domain)LIKE'; } 回应“第二步”;回音日期('h:i:SA');回声“
”; $select='c.id,c.campaign\u id,c.title as title,c.domain,c.news\u type,c.url,c.active,c.article\u date,c.created\u date,c.modified\u date,t.language\u id,t.tru translated\u date,t.tru translation\u state,t.tru title,t.raw\u title'; 如果(修剪($letterPressed)=‘原始’) { $select='c.id,c.campaign\u id,c.title as title,c.domain,c.news\u type,c.url,c.active,c.article\u date,c.created\u date,c.modified\u date,t.language\u id,t.tru translated\u date,t.tr\u translated\u by,t.translation\u state'; } 如果(修剪($letterPressed)=“法律”) { $select='c.id、c.campaign\U id、c.domain、c.news\U type、c.url、c.active、c.article\U date、c.created\U date、c.modified\U date、t.raw\U title as title、t.language\U id、t.tr\U translated\U date、t.tr\U translated\U by、t.translation\U state'; 如果($queryv!=''&&$quickSearchType=='title'){ $search='较低的(t.raw_title),如“%.”mysql_real_escape_string($queryv)。“%”; //$search='较低的(t.raw_title)像?'; } } 如果(修剪($letterPressed)='LS Translate') { $select='c.id,c.campaign,c.domain,c.news,c.url,c.active,c.article,c.created,c.modified,t.tru title as title,t.language,t.tru translated,t.tru translated,t.tru translated,t; $where.=“和t.translation_state=1”; 如果($queryv!=''&&$quickSearchType=='title'){ $search='较低的(t.tr_title),如“%”。mysql_real_escape_string($queryv)。“%”; //$search='较低的(t.tru标题)如?'; } } $whereCond.=$where; //,数组(“%”.mysql\u real\u escape\u字符串($queryv)。“%”) 回应“第三步”;回音日期('h:i:SA');回声“
”; $query->select($select) ->来自('News c') ->where($whereCond) ->addWhere('eng.tr\u language\u id=t.language\u id') ->其中('c.created_date>=date_SUB(CURDATE(),间隔90天)'); 如果(!空($search)) $query->andWhere($search); $query->leftJoin('c.TranslatedNews t on t.news\u id=c.id') ->leftJoin('c.Campaigns eng on eng.id=c.campaign_id') ->订购人('c..$sortName.'.$sortOrder) ->groupBy('c.title') ->addGroupBy('c.url') ->限额(10); 回应“步骤4”;回音日期('h:i:SA');回声“
”; //echo$query->getSqlQuery();出口 $result=$query->execute(数组(),条令::水合物数组); 回应“第五步”;回音日期('h:i:SA');回声“
”;出口 返回$result;
执行查询需要8秒。 如何使此查询快速运行


提前感谢

,因为
一样,当表格增长时速度很慢

您应该实现
全文
搜索

所以你可以

WHERE MATCH(fields) AGAINST('your search')

当您将通配符book ends放在%search term%上时,LIKE比较实际上是一个“包含子字符串”搜索。排序索引的典型优点在这样的搜索中不可用(因为通配符表示忽略值开头的字符);因此,必须检查表中的每个值(在相关列中)是否包含子字符串

如果您搜索了姓氏为“%els%”的电话簿,则必须检查每个姓氏,而如果您搜索了姓氏为“Nels%”的电话簿,则可以搜索-N-names o