2016-10-20 5 views
0

私のラーベール以外のアプリケーションにDBクラスがあります。コードは以下のようになります。それはSQLクエリを処理し、結果を$ query_cacheに格納するので、現在のページリクエストで実行された別の同じクエリがmysqlクエリを実行せずに$ query_cacheからデータを送信するときにいつでも結果が$ query_cacheに格納されます。 の方がパフォーマンスが向上し、SQLクエリが減少します。Laravel DBのクエリ結果を変数にキャッシュする同じSQLクエリを同時に処理する場合

private $query_cache=array(); 
public function query($sql, $params = array()) { 

     if((strpos(strtolower($sql), 'select')) !== false) { 
     if(array_key_exists(md5('db-engine'.$sql),$this->query_cache)) 
     { 
      return $this->query_cache[md5('db-engine'.$sql)]; 
     } 
     } 
      $result = $this->adaptor->query($sql, $params);   
      $this->query_cache[md5('db-engine'.$sql)]=$result; 
      return $result; 

    } 

Laravelフレームワークで何を行う必要がありますか?

+0

私はあなたが 'remember'方法が必要だと思います。 - https://laravel.com/docs/5.3/cache – xpuc7o

答えて

0

あなたが代わりにクエリのモデルをキャッシュし

+0

注:私はファイルやmemcacheを使用してキャッシュするとは思っていませんが、私は特定の変数にクエリの結果を保存することはできませんので、次の同じSQLクエリその変数からデータを取得します。 –

関連する問題