Normal SQL sorguları önbelleğe yeterince basittir.
public function query($sql) {
if( $result = cache::get(sha1($sql)) ) {
return $result;
}
$result = $this->connection->query($sql);
cache::set(sha1($sql), $result);
return $result;
}
Ama sorgu deyimi sonrasına kadar ne olacağını bilmiyorum çünkü sen hazırlanıp sorgular nasıl önbelleğe yok zaten hazırlanır ve daha sonra veri bağlı?
$sth = $dbh->prepare('SELECT * FROM table WHERE id = ?');
...later...
$sth->bindParam(1, $id);
$sth->execute();
İlk olarak, ifadeleri veritabanı kaynak kimlikleri uzun ömürlü ve olamaz çünkü '(bu-> ifadeler [] $ bir dizi gibi) sayfa başına önbelleğe alınır: Ben bu iki parçalı bir cevap olduğunu duygu olsun t dosyaları veya bir şey saklanır.
Ifadeleri idam edilmeden önce ikinci, () biz (PDOStatement::queryString
ile kolay) artı params sağlamalarının verilen deyimi oluşturmak için kullanılan sql karma tarafından sonuçlar için memcached / filecache bakın. Sorun deyimi nesne params bulgudur.
Tabii ki, bu sadece bir fikir olduğunu ve muhtemelen daha iyi çözümler vardır.