欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長(zhǎng)資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          laravel學(xué)習(xí)記錄之強(qiáng)制指定索引進(jìn)行查詢

          為什么需要強(qiáng)制索引?

          數(shù)據(jù)庫(kù)沒有使用我們?cè)O(shè)想的索引進(jìn)行sql查詢,導(dǎo)致查詢特別慢。

          mysql強(qiáng)制索引查詢語(yǔ)句

          • select * from user where age = 26 force index(age); // 強(qiáng)制索引

          • select * from user where age = 26 use index(age); // 優(yōu)先按照這種索引查找

          /**  * 檢測(cè)某個(gè)表中是否存在某個(gè)索引  * @param $table  * @param $index  * @return bool  * @author zhaohao  * @date 2019-08-26 17:42  */ if(!function_exists('hasIndex')) {     function hasIndex($table, $name)     {         $conn = IlluminateSupportFacadesSchema::getConnection();         $dbSchemaManager = $conn->getDoctrineSchemaManager();         $doctrineTable = $dbSchemaManager->listTableDetails($table);         return $doctrineTable->hasIndex($name);     } }
          • 在laravel的代碼里面需要這樣寫:

          在這里用when方法來(lái)判斷此索引是否存在,日過(guò)不存在的話就不用這個(gè)索引,不然會(huì)報(bào)錯(cuò),避免有人誤刪索引后,導(dǎo)致系統(tǒng)報(bào)錯(cuò)。

          此處強(qiáng)制索引的語(yǔ)句是:

          ->from(DB::raw('`erp_agents` FORCE INDEX (`test`)'))

          例如:

          $agents = Agent::where($whereType)             ->when(hasIndex('Agent', 'test'),function ($q){                 $q->from(DB::raw('`erp_agents` FORCE INDEX (`test`)'));             })             ->when(request('position',false),function ($q){                 $q->whereIn('position_id',request('position'));             })             ->whereIn('agents.status', $validStatus)             ->where('worked_at', '<=', $end)             ->where('is_suppose', 0)             ->addDomination('m.statistics-human-view')             ->leftJoin('positions', 'positions.id', '=', 'agents.position_id')             ->get(['worked_days', 'worked_at']);

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)