Tengo una aplicación donde la base de datos rara vez cambia, y la aplicación requiere muchas lecturas de la base de datos que ralentiza el rendimiento de manera bastante significativa. Muchas de estas lecturas son exactamente lo mismo. Así que quiero que DBI guarde en caché los resultados de una lectura de base de datos.¿Pueden manejar las sentencias de DBI las llamadas en caché para ejecutar()?
Por ejemplo,
$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
pensé por primera vez esto es lo que hace prepare_cached
, pero me di cuenta de que sólo se almacena el identificador de instrucción en sí y ejecuciones no reales de contexto de sentencia.
Supongo que puedo lograr lo que quiero al envolver la ejecución de la declaración dentro de un subcomunicado. Pero solo estoy viendo si hay un atajo dentro de DBI.