Pergunta

Existe uma maneira simples de armazenar em cache MySQL queries em PHP ou, na falta disso, existe um pequeno conjunto de classes que alguém escreveu e disponibilizou para fazer isso?Posso armazenar em cache uma página inteira, mas isso não funciona, pois alguns dados mudam, mas outros não. Quero armazenar em cache a parte que não funciona.

Foi útil?

Solução

Esta é uma ótima visão geral de como armazenar consultas em cache no MySQL:

Outras dicas

Você pode usar Cache Zend para armazenar em cache os resultados de suas consultas, entre outras coisas.

Acho que o tamanho do cache de consulta é 0 por padrão, o que está desativado.Edite seu arquivo my.cnf para fornecer pelo menos alguns megabytes.Nenhuma alteração de PHP é necessária :)

Pode ser um exagero para o que você está tentando, mas dê uma olhada Acelerador eletrônico ou cache de memória.Se você tiver consultas que serão alteradas regularmente e consultas que não serão alteradas, talvez você não queira que todas as suas consultas de banco de dados sejam armazenadas em cache pelo mesmo período de tempo pelo mysql.

Mecanismos de cache como os acima permitem que você decida, consulta por consulta, por quanto tempo os dados devem ser armazenados em cache.Então, digamos que você tenha dados em seu cabeçalho que serão alterados com pouca frequência, você pode verificar se eles estão atualmente no cache - se estiver, retorne-os, caso contrário, faça a consulta e coloque-os no cache com um tempo de vida de N, para o próximo N segundos a cada carregamento de página extrairá os dados do cache sem chegar perto do MySQL.Você estará então livre para extrair seus outros dados "ao vivo" do banco de dados como e quando necessário, ignorando o cache.

Eu recomendaria toda a rota de cache de página.Se alguns dos dados mudarem, basta colocar tokens/espaços reservados no lugar dos dados dinâmicos.Armazene em cache a página inteira com esses tokens e, em seguida, processe os tokens para os dados armazenados em cache dos tokens.Assim, agora você tem uma página em cache que contém conteúdo dinâmico.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top