Como pode reduzir o tamanho da base de dados do seu sítio Web?
Introdução
O tamanho de uma base de dados pode ser um fator de arrastamento significativo se não for gerido corretamente. Neste artigo, veremos por que razão a sua Base de dados MySQL pode tornar-se tão grande, como pode reduzir o tamanho das tabelas da base de dados e como pode manter o consumo do disco rígido do MySQL dentro dos limites!
Razões comuns para o crescimento da base de dados
Acredite ou não, muitas bases de dados têm um problema comum no que diz respeito ao seu crescimento.
Eis as razões mais comuns com que se pode deparar:
Registos/protocolos
Algumas aplicações utilizam a base de dados para registar todo o tipo de informações. Por exemplo - informações de acesso, erros, várias acções de administradores ou utilizadores, registos, envio de correio eletrónico, etc. Estas informações são importantes, mas armazená-las na base de dados é uma má decisão técnica, pelo menos para as bases de dados SQL. A base de dados enche-se rapidamente, especialmente se o sítio Web for muito movimentado, o que pode levar a problemas de desempenho e a uma lentidão nos registos.
Para terminar o registo da base de dados
Se achar que o tamanho das suas análises ou tabelas de registo está a ficar fora de controlo, recomendamos que mude para o registo de ficheiros. A maioria das aplicações modernas de código aberto armazena os registos em ficheiros; no entanto, se não for esse o caso, devem oferecer uma definição para mudar para o registo de ficheiros na sua área de administração. Se você tiver um sítio web personalizado deve contactar o programador que criou o sítio Web e pedir-lhe que active o registo de ficheiros.
Redução das tabelas de registo da base de dados
Antes de reduzir a sua base de dados, precisa de saber qual é o seu tamanho. Temos um ótimo tutorial sobre como Verificar a base de dados do seu sítio Webque deve definitivamente ler antes de prosseguir. Normalmente, estas tabelas contêm a palavra "log" ou "analytics" no seu nome, para que as possa distinguir facilmente das restantes. Para as tornar mais pequenas, basta esvaziá-las ou encurtá-las. O phpMyAdmin tem esta função.
*Nota: A captura de ecrã mostra-lhe exatamente onde deve clicar para limpar facilmente a tabela.
Bots
Curiosamente, os bots são uma causa comum de crescimento excessivo da base de dados. Imagine que tem uma base de dados que regista praticamente tudo o que acontece no sítio Web, por exemplo, registos, logins, e-mails, formulários de contacto, etc. Agora imagine um bot que tira partido de tudo isto e preenche os seus formulários de registo e de início de sessão com spam, de modo a que as suas tabelas fiquem cheias com as informações que pretende que sejam registadas. Se tiver um sítio Web onde os utilizadores registados possam publicar e comentar as publicações de outros utilizadores, as coisas ficam ainda mais loucas, porque o bot pode começar a publicar e a comentar. Adivinhe onde é que a maioria das aplicações guarda este tipo de dados - sim, é isso mesmo - na base de dados! Um ataque de spambot pode aumentar o tamanho da sua base de dados se não tomar certas precauções.
Como posso evitar que os bots inundem a minha base de dados?
O método mais simples é inserir um reCaptcha em todos os formulários do sítio Web. Esta implementação garante que nenhum ser não-humano se pode registar e evita assim a criação de registos na sua base de dados MySQL.
Verificar os direitos de acesso a nível do utilizador e apenas permitir que os utilizadores que tenham passado na verificação (por exemplo, por correio eletrónico) escrevam mensagens e comentários.
Mensagens moderadaspáginas e comentários ou contratar alguém para o fazer por si, se tiver um sítio Web com muito tráfego.
IMPORTANTE: Algumas integrações reCaptcha também registam os sucessos e falhas de reCaptchas individuais. A sua aplicação pode armazenar estes registos na sua base de dados. Por favor, verifique isso antes de integrar este recurso. Se o registo da base de dados estiver ativado, desligue-o completamente, pois a informação não é relevante, ou considere o registo de ficheiros.
Como eliminar tabelas de bases de dados inundadas por bots
Não existe um método definido para eliminar tabelas que tenham sido preenchidas por bots. Estas tabelas podem incluir as suas tabelas de registo, tabelas de posts, tabelas de comentários, tabelas reCaptcha, etc. É melhor verificar todas as tabelas que são maiores e esvaziar as que você acha que são spam. Se não se sentir confiante para o fazer, pode contratar um programador para rever toda a base de dados e ajudá-lo a reduzir o tamanho, removendo todo o conteúdo de spam.
Sessões
Todos os seus visitantes criam sessões no seu sítio Web quando utilizam o seu formulário de início de sessão. Para manter o utilizador ligado, a sessão interage com o cookie que está armazenado no browser do utilizador. Normalmente, esta sessão dura um determinado período de tempo. No entanto, numa aplicação mal programada, a sessão não é eliminada quando expira ou quando o utilizador termina a sessão. Combine isto com o facto de a sua aplicação armazenar sessões na sua base de dados e terá uma situação muito desagradável: a sua base de dados enche-se de sessões antigas que os seus utilizadores já não utilizam.
Para desativar sessões na base de dados
Normalmente, todas as aplicações têm uma definição algures no seu ficheiro de configuração que deve permitir alterar a localização das sessões de base de dados para ficheiro. Deve verificar a documentação da respectiva aplicação para ver se isso é possível e, em caso afirmativo, como proceder.
Eliminar sessões da base de dados
Isto deve ser muito simples. Normalmente, estas tabelas contêm a palavra "session" (sessão) ou "sess" (sessão) no seu nome, pelo que são fáceis de distinguir das restantes. Para as tornar mais pequenas, basta "esvaziá-las" ou "truncá-las". O phpMyAdmin já tem esta função incorporada. Veja também o nosso tutorial sobre como verificar o tamanho da base de dados do sítio Web.
Imagens
Um método muito arcaico de guardar imagens é armazená-las numa base de dados. O problema surgiu quando os ficheiros multimédia se tornaram cada vez maiores. No entanto, estas práticas antigas persistiram na comunidade de programadores. Se se encontrar numa situação destas, está numa posição muito difícil, uma vez que não pode simplesmente truncar ou esvaziar a tabela que contém as imagens, pois isso removeria as imagens do seu sítio Web.
Para impedir que a sua aplicação guarde imagens na base de dados
Normalmente, cada aplicação tem uma definição algures no seu ficheiro de configuração que deve permitir alterar a localização de armazenamento das imagens. Deve verificar a documentação da respectiva aplicação para ver se isso é possível e, em caso afirmativo, como proceder.
Como é que posso apagar da base de dados as imagens do meu sítio Web?
Infelizmente, esta não é uma tarefa fácil, uma vez que esvaziar a base de dados irá destruir o seu conteúdo. Aconselhamo-lo a contactar um programador e pedir-lhe que reveja toda a aplicação e a respectiva base de dados e altere a forma como trata as imagens.
Demasiadas tabelas de bases de dados
Este problema pode ocorrer em duas circunstâncias:
- Importou inadvertidamente muitos ficheiros SQL para uma única base de dados.
- Instalou demasiados plugins/módulos no seu sítio Web, que adicionaram demasiadas tabelas à base de dados.
Como posso evitar que as tabelas da minha base de dados se tornem demasiado grandes?
Em primeiro lugar, é necessário ter muito cuidado ao importar um ficheiro SQL e certificar-se de que o está a importar para a base de dados correta. Em segundo lugar, deve ter cuidado ao instalar módulos ou plugins que não provenham de um fornecedor certificado e cuja origem e manutenção sejam questionáveis.
Como é que posso reduzir o número de tabelas da base de dados?
Primeiro, desinstale todos os plug-ins desnecessários. Em seguida, verifique cuidadosamente a sua base de dados para ver se existem tabelas que não são utilizadas pela sua aplicação. Se puder pedir ajuda a um programador Web certificado, isso irá certamente facilitar-lhe a vida.
Otimizar tabelas de bases de dados com o phpMyAdmin
Antes de terminarmos este tutorial, gostaríamos de vos apresentar uma tarefa simples que podem executar com o phpMyAdmin: "Otimizar". Esta simpática função efectua operações básicas na sua base de dados e remove toda a informação desnecessária, como despesas gerais e dados voláteis da base de dados, o que, em última análise, leva a uma redução do tamanho da base de dados.
Uau, foi muita informação. À primeira vista, pode parecer complicado, mas espero que este artigo o tenha ajudado a compreender como reduzir o tamanho da base de dados do seu sítio Web. Se ainda não se sentir suficientemente confiante para corrigir os erros sozinho, não hesite em contactar o nosso Equipa de apoio enviando um bilhete na sua área de cliente.