Reduzindo consultas pesadas com a Transients API
Como armazenar temporariamente o resultado de operações custosas (consultas, chamadas externas, cálculos) com expiração automática.
Causa
Recalcular relatórios, agregações ou respostas de APIs externas em toda requisição sobrecarrega o banco de dados e aumenta o tempo de resposta da página.
Como resolver
Armazene o resultado com set_transient() definindo um tempo de expiração compatível com a frequência de mudança dos dados, e sempre verifique se o valor em cache ainda é válido com uma checagem estrita (=== false).
PHP
function obter_top_produtos() {
$cache = get_transient( 'top_produtos_30_dias' );
if ( false !== $cache ) {
return $cache;
}
$produtos = consulta_pesada_de_produtos();
set_transient( 'top_produtos_30_dias', $produtos, DAY_IN_SECONDS );
return $produtos;
}