[Ajuda] melhor forma de usar cache_delete - Versão de Impressão +- Portal SAMP (https://portalsamp.com) +-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5) +--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6) +--- Tópico: [Ajuda] melhor forma de usar cache_delete (/showthread.php?tid=3927) |
melhor forma de usar cache_delete - tylerthecreator - 25/08/2023 Boa tarde, galera! Busquei tutoriais e formas de uso do "cache_delete" e não encontrei, alguém pode me ajudar? Qual melhor forma de uso? Devo usar apenas nos SELECT ou em UPDATE também é necessário? Este exemplo de uso está correto? Código: mysql_format(mysql, string, sizeof string, "SELECT `Nome` FROM `contas` WHERE `Nome`='%e';", account); RE: melhor forma de usar cache_delete - White_Blue - 25/08/2023 Não, você não precisa atualizar o banco de dados após usar o cache_delete, pois esse comando não afeta diretamente o banco de dados, apenas deleta o cache da memória. Mas vale lembrar o seguinte, cache não vale para valores permanentes do banco de dados, o cache é apenas válido para valores temporários, que você pode definir usando as funções cache_set_active e cache_get_value. Para deletar valores permanentes no banco de dados, você pode executar a query DELETE. Exemplo: Código PHP: mysql_query(MySQL, "DELETE FROM players;"); // Deleta todos os dados contidos na tabela 'player' RE: melhor forma de usar cache_delete - Dr Editor - 25/08/2023 Sua dúvida está relacionada a propria função. Basta interpretá-la. Código PHP: mysql_query(MySQL:handle, const query[], bool:use_cache = true) O parâmetro use_cache especifica a necessidade do uso do cache e por padrão sempre vai usá-lo. O fato de estar sempre ativo creio que seja porque a consulta, não importa qual for, retorna o número de linhas afetadas. O ideal se utilizar DELETE, UPDATE ou INSERT é deixar o cache desativado, pois normalmente é pouco usado (isso quando é usado). Sinceramente, não faço ideia do que acontece em um vazamento de memória onde o servidor fica muito tempo online e gera um certo acúmulo desse cache. Talvez o servidor tome um crash ou comece a bugar os resultados... Dificil afirmar porque nunca tive essa experiência. Recentemente sem querer descobri que havia esquecido de limpar o cache de algumas consultas, porém percebi isso muito cedo e não tive nenhum contra-tempo em decorrência disso. Superficialmente o vazamento de memória consiste em gerar um identificador para cada consulta e ele é resposável pelo resultado desta. Se não limparmos a memória esse identificador vai somando até, provavelmente, bater o limite do tipo numérico (2,147,483,647) e é nessa parte que nunca cheguei para contar o final da história (realmente estou curioso). RE: melhor forma de usar cache_delete - strelo - 26/08/2023 Vou tentar ajudar com suas dúvidas sobre o uso do cache_delete e como aplicá-lo nos comandos SELECT e UPDATE. O comando cache_delete é usado para liberar a memória ocupada por um conjunto de resultados em cache após uma consulta. Ele é particularmente útil quando você não precisa mais dos resultados da consulta armazenados na memória. No entanto, é importante observar que você só deve chamar cache_delete quando realmente não precisa mais dos dados armazenados em cache. No exemplo que você forneceu, parece que você está usando a função mysql_query para executar uma consulta SELECT e, em seguida, verificando se há linhas retornadas usando cache_num_rows. Se houver linhas retornadas, você executa um bloco de código. No entanto, o código cache_delete(result) logo após isso pode não estar correto. Isso ocorre porque o result provavelmente é um identificador de resultado retornado pela função mysql_query e não é algo que a função cache_delete possa aceitar diretamente. Aqui está um exemplo corrigido do seu código, assumindo que você está trabalhando no ambiente PAWNO: Código: mysql_format(mysql, string, sizeof string, "SELECT `Nome` FROM `contas` WHERE `Nome`='%e';", account); Lembre-se de que você só deve chamar cache_delete quando tiver concluído o uso dos resultados da consulta. Essa função libera a memória ocupada pelo cache, tornando-a disponível para outras operações. Quanto à sua pergunta sobre usar o cache_delete em consultas UPDATE, geralmente você não precisa se preocupar com isso. O cache_delete está mais relacionado a consultas SELECT que retornam resultados. Consultas UPDATE, INSERT e DELETE não lidam com conjuntos de resultados da mesma forma que as consultas SELECT, então normalmente você não precisa usar o cache_delete depois de uma operação de atualização. Espero que isso tenha esclarecido suas dúvidas! Se você tiver mais perguntas, fique à vontade para perguntar. RE: melhor forma de usar cache_delete - tylerthecreator - 26/08/2023 (26/08/2023 13:16)strelo Escreveu: Vou tentar ajudar com suas dúvidas sobre o uso do cache_delete e como aplicá-lo nos comandos SELECT e UPDATE. Obrigado à todos pelas respostas. Muito obrigado, strelo, sua resposta foi certeira para minha dúvida. |