Busca


imprimir pdf

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.
Exemplo :

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
pedido1
pedido2
...
desligar_base

Afixação ...
Tratamento dos dados
Voltas ...
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.