Hoje vamos dar uma olhada na tabela wp_options em sua base de dados do WordPress. Isso é uma área que frequentemente consegue ignorar quando se fala em WordPress e desempenho da base de dados. Especialmente em sites mais antigos e maiores, isso pode ser o culpado pela lentidão em tempos de pesquisa em seu site, devido os dados autocarregados que foram deixados para trás de plugins e temas de terceiros. Verifique estas dicas abaixo em como verificar, diagnosticar, e limpar sua tabela wp_options.

O que é a tabela wp_options?

A tabela wp_options contém todos os tipos de dados para seu site WordPress como:

  • URL do site, home URL, e-mail do adminstrador, categoria padrão, posts por página, formato de tempo, etc
  • Configurações para plugins, temas e widgets
  • Dados de cache temporários
Tabela wp_options

Tabela wp_options

A tabela contém os seguintes campos, um dos quais importamos quando se trata de desempenho:

  • option_id
  • option_name
  • option_value
  • autoload
tabela de carregamento automático do wp_opções

tabela de carregamento automático do wp_options

Uma das coisas importantes para entender sobre a tabela wp_options é o campo carregamento automático. Isto contém um valor sim ou um não (sinal). Isto essencialmente controla se é ou não carregado pelo wp_load_alloptions() function. Os dados autocarregados são as informações que são carregadas em cada página do seu site WordPress. Assim como mostramos a vocês como desativar determinados scripts de carregamento do site, a mesma ideia se aplica aqui. O atributo carregamento automático está definido como “sim” por padrão para desenvolvedores, mas teoricamente nem todos os plugins devem carregar seus dados em cada página.

O problema que os sites WordPress podem executar quando há uma grande quantidade de dados carregados automaticamente na tabela wp_options. Isso geralmente é resultado do seguinte:

  • Os dados estão sendo carregado automáticamente por plugin quando esta opção deveria estar definida como “não”. Um bom exemplo disto seria um formulário de contato do plugin. Ele precisa carregar os dados em cada página ou apenas na página de contato?
  • Plugins ou temas foram removidos do site WordPress, mas suas opções são ainda deixadas para trás na tabela wp_options. Isto poderia significar dados carregados automaticamente de maneira desnecessária e que estão obtendo retorno em cada solicitação.
  • Os desenvolvedores dos plugins e temas estão carregando dados na tabela wp_options em vez de utilizar suas próprias tabelas. Existem argumentos para ambos os lados, pois alguns desenvolvedores preferem plugins que não criam tabelas adicionais. Porém, a tabela wp_options também não foi desenvolvida para suportar milhares de linhas.

Quanto pode ser considerado o excesso de dados carregados automaticamente? Isso pode variar, é claro, mas idealmente você quer que esteja entre 300 KB a 1MB. Uma vez que você começa a se aproximar de 3 a 5 MB, ou mais, existem coisas mais prováveis que podem ser otimizadas ou removidas para ser carregadas. E nada abaixo de 10 MB seria endereçada agora mesmo. Isso não significa sempre que vai causar um problema, mas é um bom lugar para começar.

Resolução de problemas de dados de carregamento automático na tabela wp_options

Se você está sentindo lentidão em seu site WordPress, pode ser devido a uma consulta ou carregamento automático de dados deixados através de um plugin antigo do WordPress. Abaixo mostraremos a você como verificar o tamanho de carregamento em seu banco de dados, bem como mergulhar em um site de dados vivos e compartilhar o que fizemos para limpar.

Check Autoloaded Data Size

A primeira coisa a fazer é verificar o tamanho do carregamento automático atual em seu site WordPress. Para fazer isso, faça login no phpMyAdmin. Clique em seu banco de dados, à esquerda, e então, na tabela SQL. Em seguida, digite o seguinte comando e clique em “Ir”.

SELECT SUM(LENGTH(option_value)) as autoload_size FROM wp_options WHERE autoload='yes';

Você pode ter que ajustar a pesquisa abaixo se seu site WordPres está usando um prefixo diferente do wp_..

tamanho da consulta do carregamento automático no phpMyAdmin

tamanho da consulta do carregamento automático no phpMyAdmin

O tamanho_do_carregamento automático será exibido em bytes. Existem 1000 bytes em um KB e 1000 KBs em um MB. Então em seu caso, 249.025 bytes é igual a 0,25 MB. Então, para este site, isso é um bom tamanho! Se você retornar tudo abaixo de 1 MB você não deverá ficar preocupado. Porém, se o resultado for muito maior, continue com este tutorial.

Tamanho do carregamento automático

Tamanho do carregamento automático

Abaixo está um site que estivemos testando no qual 137.724.715 bytes tinham retornado, ou melhor, 137 MB. Isto é um bom exemplo de um site onde algo está definitivamente errado, ou melhor, existem coisas para otimizar.

Grande carregamento automático de dados na tabela wp_options

Grande carregamento automático de dados na tabela wp_options

Você também poderia usar uma consulta maior como o seguinte. Isso mostrará a você o tamanho dos dados de carregamento, quantas entradas estão na tabela e as primeiras 10 entradas por tamanho.

SELECT 'autoloaded data in KiB' as name, ROUND(SUM(LENGTH(option_value))/ 1024) as value FROM wp_options WHERE autoload='yes'
UNION
SELECT 'autoloaded data count', count(*) FROM wp_options WHERE autoload='yes'
UNION
(SELECT option_name, length(option_value) FROM wp_options WHERE autoload='yes' ORDER BY length(option_value) DESC LIMIT 10)
Consulta avançada de carregamento automático de dados avançados do MySQL

Consulta avançada de carregamento automático de dados avançados do MySQL

Se você tem acesso ao New Relic, você poderia também usá-lo para ajudar na consulta da solução de problemas, conectado na tabela wp_options. O banco de dados da tabela salientará a tabela e tipo de consulta consumindo o maior tempo. Se você seleciona uma das entradas da lista você pode ver mais detalhes, incluindo alguns exemplos de consulta. Neste exemplo abaixo, você pode ver que os dados apontam um dedo para o carregamento de dados na tabela wp_options. Sem dúvida, uma rápida análise do site em questão, confirmou que quase 250 MB de dados são carregados automaticamente.

By reviewing the slow query details you get a sense for what you need to look for in the database.

Consulta lenta do New Relic – tabela wp_options

New Relic slow query – wp_options table

Tipos Principais de Carregamento automático de Dados

Na próxima etapa seria ordenar os itens principais com dados de carregamento automático. Aqui está um comando sQL rápido que você pode usar no topo 10 da lista:

SELECT option_name, length(option_value) AS option_value_length FROM wp_options WHERE autoload='yes' ORDER BY option_value_length DESC LIMIT 10;

Novamente, você pode ter que ajustar uma pesquisa abaixo se seu site WordPress está usando um prefixo diferente de wp_.

Top autoloaded data in wp_options table

Principais dados carregados automaticamente na tabela wp_options

Analisando os Dados Carregados Automaticamente em wp_options

A próxima etapa foi analisar alguns dos principais dados de carregamento automático.

301_redirects

Como podemos ver abaixo, a principal opção de carregamento automático é o redirecionamento 301. Isso está provavelmente diretamente relacionado com algum redirecionamento de plugin no site ou plugin WordPress SEO, a qual também uma função redireciona. Neste caso, a melhor recomendação é para também implementar os redirecionamento a nível de servidor.

Por quê? Porque usar plugins WordPress gratuito para implementar redirecionamentos pode às vezes causar problemas de desenvolvimento, pois a maioria deles utiliza a função wp_redirect, a qual requer códigos adicionais de execução e recursos. E claro, também dados de carregamento na tabela wp_options..

Se você é um cliente Kinsta, você pode facilmente adicionar redirecionamentos a  nível do servidor usando nossa ferramenta de redirecionamento de regras. Não é apenas isso que melhora o desempenho, mas você pode então potencialmente ter um plugin a menos para se preocupar!

Add redirect rule in MyKinsta

Adicionando regras de redirecionamento em MyKinsta

wpurp_custom_template_

O próximo carregamento automático de opções de dados foi o wpurp_custom_template_#. Podemos ver que existem poucas linhas diferentes para ele. Tipicamente você deveria ser capaz de encontrar esta opção de nome e conectar os pontos, procurando em suas pastas de temas ou plugins. Neste caso, fizemos um comando grep do servidor para ver se poderíamos encontrá-lo. Você também poderia identificar a verificação via SFTP.

grep -Ri "wpurp_custom_template_"

O comando acima, contudo não retornou nada e então já falamos sobre o Google e fizemos uma pesquisa. Descobrimos rapidamente que foi relatado ao plugin do WordPress que não estava instalado no site, conhecido como WP Ultimate Recipe. Isso é um exemplo clássico de carregamento de dados desnecessário deixados pra trás. Temos um longo tutorial em como desinstalar os plugins WordPress (a maneira adequada). E apropriadamente, queremos dizer, na verdade, limpamos o que está por trás.

wpurp_custom_template_

wpurp_custom_template_

um_cache_userdata_

A próxima opção principal de dados carregados foi um_cache_userdata_#. Podemos ver que existem várias linhas diferentes para isto. Já que estamos em direção ao fim, rapidamente modificamos nosso comando MySQL para mostrar os 40 principais dados carregados automaticamente:

SELECT option_name, length(option_value) AS option_value_length FROM wp_options WHERE autoload='yes' ORDER BY option_value_length DESC LIMIT 40;

Ou somar todos os valores com esse prefixo:

SELECT 'sum size in KiB', ROUND(SUM(length(option_value))/1024,0) FROM wp_options WHERE autoload='yes' AND option_name like "um_cache_userdata_%"

Podemos ver que existiam muito mais entradas para um_cache_usedata_# na tabela wp_options. Executamos novamente um comando grep para verificar nossas pastas de plugins e temas.

grep -Ri "um_cache_userdata_"

Fomos capazes de identificar rapidamente isso como sendo relacionado para o plugin Ultimate Member. Outra pesquisa rápida do Google retornou com algumas poucas soluções para este problema (veja o artigo do suporte). Nunca subestime o poder de Pesquisa do Google! Descobrimos que existem algumas opções diferentes disponível do plugin para resolver este problema.

  • Ultimate Member > Painel > Cache do Usuário> Limpar Cache.
  • Últimate Member -> Configurações -> Avançado -> Parar cache de dados de perfil dos usuários (muda para ON), e então, salve as Mudanças.

Outra opção para ver o que é uma opção de carregamento automático é tocando no botão editar, e isso pode listar o diretório do plugin/tema ou a lista de desenvolvedores do site.

Cron Jobs

Outra opção frequente que vemos com uma grande quantidade de carregamento de dados é o cron. Para isso, poderia ser qualquer cron relacionado. Então, o que você pode fazer é clicar no botão “editar” para ver o que está causando isso. Aqui está um exemplo abaixo no qual foi aparentemente “do_pings” que causou o problema. Novamente, uma pesquisa rápida no Google revelou uma correção rápida para Clean up do_pings.

cron - do_pings

cron – do_pings

Limpar a Tabela wp_options

Se você está vendo muito do que mencionamos acima, então provavelmente é hora para uma limpeza de todos os dados de carregamento automáticos em sua tabela wp_options.  Também recomendamos que você tente manter o número de linhas em sua tabela wp_options para um mínimo possível. Por favor, sempre faça backups antes de apagar dados em sua base de dados. Se você não está confortável fazendo você mesmo, recomendamos sempre contratar um desenvolvedor WordPress. Isso é também um bom cenário onde um ambiente de organização pode ser útil.

Como fizemos mais cedo, você vai precisar fazer login no phpMyAdmin. Clique em seu banco de dados do lado esquerdo e então na tabela SQL. Então introduza o seguinte comando e clique em “Ir”.

SELECT * FROM `wp_options` WHERE `autoload` = 'yes'

Você pode ter que ajustar a pesquisa abaixo se seu site WordPress está usando um prefixo diferente além do wp_. Isso mostrará a você todos os dados na tabela wp_options que estão definidos para carregar automaticamente.

Find autoloaded data in wp_options

Encontrar dados carregados automaticamente em wp_options

Rolando para baixo através das linhas que vemos todos os tipos de plugins que não são mais instalados ou utilizados pelo site. Isso é apenas um exemplo que estamos usando, mas neste caso, notamos um monte de linhas Jetpack. O Jetpack não estava mais sendo usado no site em questão.

Old autoloaded data

Carregamento de dados automáticos antigos

É sempre bom verificar a documentação de desenvolvedores de plugins, pois às vezes eles têm uma opção para limpá-lo, deixando as tabelas pra trás. Em cada caso, às vezes é mais seguro e fácil simplesmente instalar o plugin novamente, verificar suas opções de limpeza automatizada e então remover o plugin corretamente. Porém, vamos mostrar a você como limpar as tabelas manualmente.

Então neste caso, executamos uma seguinte consulta para encontrar os dados carregados automaticamente na tabela wp_options do plugin Jetpack. Para modificar a consulta com o seu próprio, simplesmente substitua o %jetpack%.

SELECT * 
FROM `wp_options` 
WHERE `autoload` = 'yes'
AND `option_name` LIKE '%jetpack%'

Você pode então selecionar todas as linhas e clicar em “Apagar.”

Delete autoloaded tables

Apagando tabelas de carregamento automático

Ou você pode executar o seguinte comando:

DELETE
FROM `wp_options` 
WHERE `autoload` = 'yes'
AND `option_name` LIKE '%jetpack%'
Delete autoloaded data in wp_options table

Apagando os dados carregados automaticamente na tabela wp_options

Você pode então limpar e repetir por carregamento adicional de dados deixados para trás de plugins e temas em sua tabela wp_options.

Limpeza Transitória

A menos que você esteja usando um objeto cache, o WordPress armazena registros transitórios na tabela wp_options. Tipicamente estes são dados na expiração do tempo e deverá desaparecer ao longo do tempo. Porém, esse não é sempre o caso. Temos visto alguns bancos de dados, onde existem milhares de velhos registros transitórios. É também importante notar que os registros  transitórios não são para o carregamento por padrão. Você poderia usar uma consulta, como vemos abaixo, para ver se existem dados transitórios de carregamento automático.

SELECT * 
FROM `wp_options` 
WHERE `autoload` = 'yes'
AND `option_name` LIKE '%transient%'

Porém, uma opção melhor e segura seria utilizar um plugin grátis como Transient Cleaner , que pode limpar apenas os transitórios expirados de sua tabela wp_options.

Adicionar um índice ao carregamento automático

Se limpar sua tabela wp_options não foi suficiente, você poderia tentar adicionar um “Índice” ao campo de carregamento automático. Isso essencialmente pode ajudá-lo a ser pesquisado com mais eficiencia. A equipe incrível de 10up desenvolveu alguns cenários de teste em uma tabela wp_options com um número típico de carregamento de registros para mostrar como adicionar um carregamento automático de índice para a consulta wp_options pode impulsionar o desempenho.

Para obter ainda mais dicas de otimização, confira nosso guia detalhado: Como agilizar seu site do WordPress (Guia Final)

1.0K
Shares