+1

Usando o SQL_CACHE para melhorar a performance do MySQL

criado por André Sam! em 02/12/2007 3:06am
Estive pesquisando sobre como usar menos carga em minhas queries. Administro um portal de buscas - http://www.netmultibusca.com.br - e nesse portal, o número de acessos diários é grande - cerca de 50.000 mais ou menos. E como usamos muitas queries durante as navegações, o servidor tava sobrecarregando - aliás, caiu 2x ( na locaweb ).

Foi na segunda vez que eles me informaram sobre o SQL_CACHE. É muito simples o uso, e ajuda bastante no resultado final.

Por exemplo:

<?php
mysql_query("SELECT * FROM tabela WHERE id = '$_GET[id]'");
?>

Neste caso, de forma geral, sempre iremos retornar o mesmo resultado. Podemos usar o SQL_CACHE nele:

<?php
mysql_query("SELECT SQL_CACHE * FROM tabela WHERE id = '$_GET[id]'");
?>

Com essa query, o MySQL irá guardar o resultado da primeira consulta em CACHE, e na próxima consulta, ao invés de pesquisar dentro das tabelas pelos registros solicitados, ele irá usar o resultado gravado na memoria do servidor. Com isso, o retorno da consulta é mais rápido também.

Ou seja ( cerveja ) ... ehe - ele vai usar uma carga bem menor, visto que não precisa gerar o resultado novamente, pois ja o tem em cache. Você pode pensar: "ah, mas meu site tem pouco acesso, não preciso disso". Bem, mesmo assim eu sugiro o uso do cache, pois quanto menos carga você usar do mysql, mais ágil será seu sistema e suas consultas.

Dei acima o exemplo de uma consulta por ID, mas é possivel usar em todas as suas consultas MySQL. Tipo, no while:

<?php
$ac = mysql_query("SELECT SQL_CACHE * FROM tabela ORDER BY id");
while ($r = mysql_fetch_array($ac)) {
    $id = $r['id'];
    $nome = $r['nome'];
    $email = $r['email'];

    //...
}
?>

Mesma coisa: o MySQL guarda em cache e se a mesma consulta for efetuada, ele usa o cache e tudo fica melhor - mais rápido e com menos recursos do servidor.

André Sam!
http://www.netmultibusca.com.br

Comentários:

Nenhum comentário foi enviado ainda.

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)