OVH : OptimizarUmaBase
Optimizar a sua base Mysql Porquê optimizar uma base? É necessário manter a sua base de dados para que continue eficiente. O que entendemos por eficiente é, o facto das informações contidas na base sejam enviadas rapidamente ao script que as pede. Para isso, é necessário uma base bem estruturada e optimizada. Neste guia, vamos-lhe mostrar como optimizar o melhor possível a sua base de dados.
Na base de dados Indexar a base de dados
Para aumentar a rapidez das procuras na hora de um pedido, é necessário pôr um índice sobre os campos que são utilizados nas cláusulas WHERE.
Fazer uma procura de pessoa em relação à cidade. É necessário indexar o campo " cidade" com o pedido seguinte:
ALTER TABLE `test` ADD INDEX ( `cidade` );
Purgar a base Alguns dos seus dados não são consultados. Porque não os arquivar? As suas tabelas estarão menos cheias e as investigações irão ser mais rápidas.
Nos scripts Limitação de apresentação
Limitar a apresentação dos registos a um número restrito (tipo 10 por página) com a parte LIMIT do pedido.
Agrupamento dos pedidos
Agrupar os seus pedidos no início do script assim:
ligacao_base
desligar_base
Afixação ...
Fazer uso da cache:
Se tem informações que são "tiradas" da BD e que não altera frequentemente, pode coloca-las em cache. Por exemplo, gerir a página HTML quando altera as informações. Este tipo de astúcia diminuirá drasticamente os seus acessos. Por exemplo uma página de news. Se o ficheiro (em cache) HTML existe, pode utilizá-lo (simples include) se não, gere-o. E no momento em que afixa uma nova notícia , pode incluir no script que a elimina o tal ficheiro HTML: assim será regerado na próxima vez que um visitante o pede. Pode também fazer uso da cache de sessão. Pode guardar os resultados de um pedido numa variável de sessão, para que quando o mesmo pedido for efectuado, não o executar novamente, apenas recuperará as variáveis de sessão.
Escolher unicamente o necessário
Nos seus pedidos SQL verifique que seleccionou apenas o que tem necessidade, e sobretudo que não esqueceu as ligações entre as tabelas (where table1.campo = table2.campo2) porque se não o fez, demora muito tempo (ainda que com o where lhe apareça um resultado correcto).
Evitar as opções demasiado "gulosas"
Evitem utilizar HAVING (também é uma fábrica a gás), idem para GROUP BY. Certamente, às vezes é obrigatório, mas outras vezes não.