2012-03-29 11 views
0

使用してのKohanaの(3.xの)データベースクエリビルダでこれを実装する方法があります:私はキャッシュMySQLの結果を得るためキャッシュされた方法を使用することができます知っているKohanaのDB SQL_CACHE

SELECT SQL_CACHE id, name FROM customer; 

は、私mysqlがKohanaではなく結果をキャッシュします。

答えて

1

kohanaにはどこにでもSQL_CACHEが定義されているとは思いません。しかし、あなたがショーがkohanaでsql_cacheを持っていないために停止していると感じるなら、私があなたに提案できる1つのことがあります。非常に簡単な独自のsql_cacheメソッドを作成してください。

モジュール/データベース/クラス/ kohana /データベース/クエリ/ビルダー/ select.phpで$ _sqlcache変数を定義します。ちょうど "protected $ _distinct = FALSE;"

protected $_sqlcache = FALSE; 

public function sqlcache($value) 
{ 
    $this->_sqlcache = (bool) $value;  
    return $this; 
} 

コンパイルで()メソッド

//Just below these lines 
/*if ($this->_distinct === TRUE) 
{ 
    // Select only unique results 
    $query .= 'DISTINCT '; 
}*/ 

if ($this->_sqlcache === TRUE) 
{ 
    $query .= 'SQL_CACHE '; 
} 

//$query = DB::select('id', 'name')->sqlcache(TRUE)->from('customer'); 

メソッドを追加し、私はKohanaの3.2でこれを行なったし、それは確かにあなたのようなクエリはを求め生成するんが、私はそれが正しい方法であるかどうかわからない。それが動作するかどうか私に教えてください。

+0

はい、これはおそらく方法です。クラスを拡張して元のソースを作成せずに実装します。 ありがとうございます。 –