A base de dados cresceu: onde ver o tamanho, e o que se pode apagar

Um dia repara que a conta está mais cheia do que devia, e que boa parte disso é a base de dados. A pergunta certa nesse momento não é «como limpo?». É o que está lá dentro a ocupar o espaço. Este artigo trata de medir e de decidir, que é a parte que se salta.

A limpeza em si, com os comandos já escritos, está em limpar e optimizar a base de dados pelo phpMyAdmin. Faça-a depois de saber o que vai apagar, e não antes.

Onde se vê o tamanho

1 No cPanel, na área das bases de dados MySQL. Não precisa de instalar nem de correr nada: a lista das bases da sua conta traz, ao lado de cada nome, o espaço que aquela base ocupa. É o caminho mais curto, e é este número que decide se vale a pena ir mais fundo: se a base tem uns megabytes, o problema não é ela, são os ficheiros.
2 No phpMyAdmin, tabela a tabela. Escolha a base na lista da esquerda e a página que abre mostra as tabelas com uma coluna de tamanho. Ordene por aí e olhe só para as três primeiras: numa base normal, três tabelas explicam quase tudo. Se não souber qual é a base do site, descubra-a primeiro.
3 Com uma consulta, se quiser o quadro completo de uma vez. No separador SQL do phpMyAdmin, troque conta_base pelo nome completo da sua base, com prefixo, e corra o comando abaixo.

SELECT table_name, ROUND((data_length + index_length)/1024/1024, 1) AS mb, ROUND(index_length/1024/1024, 1) AS mb_indices, ROUND(data_free/1024/1024, 1) AS mb_mortos, table_rows FROM information_schema.tables WHERE table_schema = 'conta_base' ORDER BY data_length + index_length DESC;

A coluna O que lhe diz
mb O peso total da tabela, dados e índices somados. É por esta que a lista vem ordenada.
mb_indices Quanto desse peso são índices. Índices grandes não são desperdício: são o que faz as consultas serem rápidas. Não os apague para poupar espaço.
mb_mortos Espaço que já esteve ocupado e está livre dentro do ficheiro da tabela. Se este número for alto, alguém já apagou muita coisa e falta reconstruir a tabela para o espaço voltar ao disco.
table_rows Uma estimativa do número de linhas, e não uma contagem. Serve para comparar tabelas entre si; para o número exacto de uma, conte-a com um SELECT COUNT(*).

O que costuma estar a crescer, e como confirmar

Num site feito em WordPress, as tabelas gordas são quase sempre as mesmas quatro coisas. Nenhuma delas se adivinha: confirmam-se todas com uma contagem no separador SQL. Troque o wp_ pelo prefixo das suas tabelas.

O que é Como confirmar que é isso
Revisões de páginas e artigos Cada gravação de um texto guarda a versão anterior inteira. Corra SELECT post_type, COUNT(*) FROM wp_posts GROUP BY post_type; . Se a linha das revisões for muito maior do que a das páginas e dos artigos, encontrou.
Comentários marcados como spam Marcados, mas nunca apagados. Corra SELECT comment_approved, COUNT(*) FROM wp_comments GROUP BY comment_approved; . Num site antigo, a linha do spam chega aos milhares.
Tabelas de plugins que já desinstalou Olhe para os nomes das tabelas maiores. As do WordPress são poucas e sempre as mesmas; qualquer outra pertence a um plugin. Se o plugin já não está instalado, a tabela ficou para trás e ninguém a lê.
Registos de eventos Tabelas com log no nome, deixadas por plugins de segurança, de encomendas ou de formulários: guardam uma linha por acontecimento e nunca apagam nada. Ordene a tabela pela data mais antiga; se tiver linhas de há anos, está provado.

Há ainda uma quinta coisa que não se vê no tamanho mas pesa em cada visita: as opções marcadas para carregamento automático. São lidas em todos os pedidos, mesmo as que sobraram de um plugin que já foi. A consulta que as mostra por tamanho está no artigo da limpeza.

Decidir: o que sai, o que só sai com confirmação, e o que fica

1 Sai sem dúvidas: revisões antigas, rascunhos automáticos, o que está no lixo há meses, comentários já marcados como spam, e registos de eventos com anos em cima.
2 Sai com uma confirmação: as tabelas de plugins. Confirme primeiro que o plugin está mesmo desinstalado, e não apenas desactivado. Um plugin desactivado volta a ser ligado um dia e vai procurar as tabelas dele.
3 Não sai: tudo o que não souber identificar. Uma tabela apagada à sorte pode parar uma funcionalidade inteira, e a única volta atrás é a cópia. Na dúvida, pergunte a quem fez o site, ou pergunte-nos.
Antes do primeiro comando de apagar, duas cópias. Uma exportação da base, guardada fora do servidor, e a cópia da conta pelo painel: como restaurar dados com o JetBackup e fazer e guardar a sua própria cópia. Não há desfazer nisto.

Duas coisas que convinha saber antes de começar

Uma base grande raramente é a razão de um site estar lento. Se o que o incomoda é a velocidade e não o espaço, limpar a base vai dar-lhe pouco: as mudanças que rendem estão por ordem em o site está lento: o que faz mesmo diferença.

E se o que lhe falta é espaço na conta, repare que o tecto que costuma travar primeiro não é o peso: é o número de ficheiros. Está explicado em os limites que não vêm no anúncio.

Meça outra vez depois de limpar, e não se assuste se o número não baixar logo. Apagar linhas não encolhe o ficheiro da tabela de imediato: o espaço fica lá dentro, marcado como livre, e só volta ao disco quando a tabela é reconstruída. É a coluna dos mortos da consulta acima, e é exactamente isso que a optimização arruma.

Mediu e não reconhece a tabela maior? Diga-nos o domínio e o nome dela.

Abrir um pedido de suporte

VEJA TAMBÉM

Hospedagem WordPress

Planos de hospedagem e o que cada um inclui

Política de Suporte: até onde vai a nossa ajuda

PRODUTO RECOMENDADO

Alojamento de sites com cPanel

Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde 5.940,00 Kz/mês (plano de 3 anos, com cupão)

Ver planos
  • 0 Utilizadores acharam útil
Esta resposta foi útil?