Могут ли операторы DBI использовать кэшированные вызовы для execute ()?

У меня есть приложение, в котором база данных изменяется редко, а приложение требует много операций чтения из базы данных, что значительно снижает производительность. Многие из этих чтений точно такие же. Итак, я хочу, чтобы 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 , но я понял, что он кэширует только дескриптор оператора, а не фактическое выполнение дескриптора оператора.

Полагаю, я мог бы достичь того, чего хочу, заключив выполнение оператора в мемоизированную подпрограмму. Но я просто смотрю, есть ли ярлык в самом DBI.

6
задан stevenl 30 September 2011 в 10:25
поделиться