Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Melhor técnica para armazenar em cache os resultados de consultas que mudam com pouca frequência


Na função para gerar a tabela, faça com que ela armazene o resultado em um arquivo em disco:
/cache/groups/1.txt
/cache/groups/2.txt

Você não precisa necessariamente executar um trabalho em lote semanal para isso, ao chamar a função para obter os dados, verifique se o cache está desatualizado (ou inexistente). Em caso afirmativo, gere e armazene os resultados em cache. Caso contrário, apenas retorne o arquivo em cache.
function getGroupTable($groupId) {
    if (cacheIsStale($groupId)) {
        generateCache($groupId);
    }
    return file_get_contents($cacheFile);
}

O cacheIsStale() função poderia apenas olhar para os timestamps do arquivo para testar o frescor.