6
我有一個數據庫很少更改的應用程序,並且應用程序需要從數據庫讀取很多數據,這會顯着降低性能。這些讀取中的許多完全相同。所以我想讓DBI緩存數據庫讀取的結果。可以DBI語句處理使用緩存的調用執行()?
例如,
$sth = $dbh->prepare('SELECT a, b FROM a_table WHERE c = ?');
$sth->execute(5);
$sth->execute(2);
$sth->execute(5); # this call loads the cached result set
我首先想到這是prepare_cached
的做法,但我意識到,這只是緩存語句句柄本身和語句句柄的不是實際的執行。
我想我可以通過將語句執行包裝在memoized子文件中來實現我想要的。但我只是看到DBI本身是否有捷徑。