{"id":261179,"date":"2024-02-03T16:18:00","date_gmt":"2024-02-03T13:18:00","guid":{"rendered":"https:\/\/inform.click\/truques-uteis-para-encontrar-e-corrigir-consultas-lentas-no-banco-de-dados-do-wordpress\/"},"modified":"2024-02-03T16:18:00","modified_gmt":"2024-02-03T13:18:00","slug":"truques-uteis-para-encontrar-e-corrigir-consultas-lentas-no-banco-de-dados-do-wordpress","status":"publish","type":"post","link":"https:\/\/inform.click\/pt-pt\/truques-uteis-para-encontrar-e-corrigir-consultas-lentas-no-banco-de-dados-do-wordpress\/","title":{"rendered":"Truques \u00fateis para encontrar e corrigir consultas lentas no banco de dados do WordPress"},"content":{"rendered":"<p>\n  Consultas SQL moderadas podem atrapalhar a execu\u00e7\u00e3o do site de desenvolvimento de aplicativos WordPress. De vez em quando, consultas moderadas s\u00e3o um efeito colateral de SQL inadequadamente estruturado que nunca deveria ter sido feito dessa maneira.\n<\/p>\n<p>\n  Al\u00e9m do mais, em alguns casos, as perguntas moderadas eram, na verdade, perguntas r\u00e1pidas em um determinado ponto &#8211; mas, \u00e0 medida que o site se tornava mais experiente, a consulta ficava cada vez mais lenta, impotente para ficar ciente do extenso banco de dados.\n<\/p>\n<p>\n  Apesar de como o SQL ficou moderado, deve-se investigar algumas abordagens para descobrir e corrigir problemas no desenvolvimento de aplicativos WordPress. Aqui e ali, pode-se exigir determinado aplicativo da web e pode n\u00e3o ter energia, aptid\u00e3o ou plano de gastos suficiente para fazer melhorias personalizadas. Criar sem nenhuma prepara\u00e7\u00e3o pode ser a resposta para alguns problemas, mas pode demorar mais do que come\u00e7ar a partir de uma base de c\u00f3digo atual. O WordPress foi inicialmente estruturado como um est\u00e1gio de blogging, e continua se destacando por isso. Seja como for, ele evoluiu para um sistema de gerenciamento de conte\u00fado (CMS) totalmente desenvolvido e, para alguns prop\u00f3sitos, pode at\u00e9 mesmo criar um aplicativo da web poderoso &#8211; rapidamente e com um plano de gastos fundamentalmente mais baixo do que a melhoria personalizada. Embora o WordPress ofere\u00e7a aplicativos de desenvolvimento embutidos, ele pode ser usado para aplicativos da web, a fim de torn\u00e1-lo mais \u00fatil. As estruturas inerentes de p\u00e1gina e postagem podem ser utilizadas para muitas coisas, mas se algu\u00e9m precisar de informa\u00e7\u00f5es e campos personalizados para serem inclu\u00eddos, procurados ou questionados, controlados e mostrados, algum trabalho extra \u00e9 necess\u00e1rio.\n<\/p>\n<h5>\n  Encontrar consultas lentas<br \/>\n<\/h5>\n<p>\n  Encontrar a origem de perguntas moderadas inclui duas etapas:\n<\/p>\n<ol>\n<li>Descobrir quais perguntas s\u00e3o realmente as moderadas.\n  <\/li>\n<li>Identificar o programa que os est\u00e1 operando.\n  <\/li>\n<\/ol>\n<p>\n  Deve-se dar uma olhada em dois m\u00f3dulos e um SaaS que podem permitir que eles encontrem consultas moderadas.\n<\/p>\n<h5>\n  Monitor de consultas<br \/>\n<\/h5>\n<p>\n  Para obter informa\u00e7\u00f5es sobre a p\u00e1gina que est\u00e1 sendo executada no momento, este m\u00f3dulo pode ser usado. Apesar de todo um conjunto de dados sobre as atividades internas do WordPress, ele fornece uma an\u00e1lise ponto a ponto de:\n<\/p>\n<ul>\n<li>Quantas perguntas ocorreram sobre essa demanda?\n  <\/li>\n<li>Qual consulta na p\u00e1gina levou o tempo m\u00e1ximo?\n  <\/li>\n<li>Quais capacidades investiram mais energia em quest\u00f5es de SQL?\n  <\/li>\n<li>Se essas consultas se originaram de m\u00f3dulos, assuntos ou do centro do WordPress\n  <\/li>\n<\/ul>\n<p>\n  A tela de consulta at\u00e9 reconhece perguntas moderadas com conte\u00fado vermelho enervante, o que torna muito simples selecionar o problema SQL.\n<\/p>\n<h5>\n  Barra de depura\u00e7\u00e3o<br \/>\n<\/h5>\n<p>\n  Outro instrumento fenomenal para encontrar um SQL extremamente moderado \u00e9 o antigo e confi\u00e1vel m\u00f3dulo Debug Bar. A barra de depura\u00e7\u00e3o fornece um dado sobre o funcionamento interno do WordPress quando uma p\u00e1gina \u00e9 carregada com assuntos como:\n<\/p>\n<ol>\n<li>Par\u00e2metros de WP_Query\n  <\/li>\n<li>Solicitar dados (contando a coordena\u00e7\u00e3o das regras de reformula\u00e7\u00e3o)\n  <\/li>\n<li>Consultas SQL produzidas pela p\u00e1gina atual\n  <\/li>\n<\/ol>\n<p>\n  Para ativar o SQL seguinte na barra de depura\u00e7\u00e3o, o usu\u00e1rio deve permitir SAVEQUERIES em algum lugar do site, provavelmente em wp-config.php\n<\/p>\n<p>\n  Cuidado: SAVEQUERIES afeta a execu\u00e7\u00e3o no site e, presumivelmente, n\u00e3o deve ser utilizado em um servidor de gera\u00e7\u00e3o. No entanto, pode ser usado em uma m\u00e1quina de avan\u00e7o.\n<\/p>\n<p>\n  Encontrar o SQL moderado n\u00e3o \u00e9 extremamente f\u00e1cil com a barra de depura\u00e7\u00e3o. Por exemplo, n\u00e3o fornece as tabelas classific\u00e1veis \u200b\u200bnem apresenta perguntas moderadas para o usu\u00e1rio. O que a Debug Bar fornece \u00e9 uma capacidade de acompanhamento que direciona o usu\u00e1rio precisamente na dire\u00e7\u00e3o da origem de uma pergunta.\n<\/p>\n<p>\n  Este \u00e9 um resumo dos documentos que s\u00e3o carregados e das capacidades que resultam na consulta que est\u00e1 sendo executada. Na maioria das vezes, algu\u00e9m est\u00e1 interessado na se\u00e7\u00e3o cont\u00ednua cont\u00ednua no resumo; este \u00e9 o lugar onde a pergunta moderada foi executada e onde se deve come\u00e7ar sua ca\u00e7ada. O conveniente de ter a configura\u00e7\u00e3o de cada capacidade que leva a essa pergunta \u00e9 que ela pode revelar uma vis\u00e3o sobre por que o SQL foi executado em qualquer caso.\n<\/p>\n<h5>\n  NewRelic<br \/>\n<\/h5>\n<p>\n  NewRelic \u00e9 uma administra\u00e7\u00e3o que mede e monitora a execu\u00e7\u00e3o do desenvolvimento de aplicativos da web, incluindo o desenvolvimento de aplicativos WordPress. A administra\u00e7\u00e3o fornece uma tonelada m\u00e9trica de dados sobre a execu\u00e7\u00e3o do site. \u00c9 tudo menos dif\u00edcil perder todo o senso de dire\u00e7\u00e3o nas informa\u00e7\u00f5es que o NewRelic fornece ao usu\u00e1rio detalhes minuciosos para consultas SQL.\n<\/p>\n<p>\n  Existem dois contrastes not\u00e1veis \u200b\u200bentre o NewRelic e os m\u00f3dulos que mencionamos anteriormente:\n<\/p>\n<ol>\n<li>NewRelic d\u00e1 muito mais informa\u00e7\u00f5es sobre a execu\u00e7\u00e3o do PHP, at\u00e9 o c\u00e1lculo exato do tempo gasto em cada fun\u00e7\u00e3o\n  <\/li>\n<li>O NewRelic rastreia cada demanda para o site fora de vista, para que seja poss\u00edvel consult\u00e1-lo mais tarde para descobrir SQL moderado. Os m\u00f3dulos apenas fornecem a p\u00e1gina atual.\n  <\/li>\n<\/ol>\n<p>\n  \u00c9 importante que o NewRelic tenha um n\u00edvel de servi\u00e7o gratuito que forne\u00e7a dados gerais sobre o funcionamento do site, mas que ser\u00e1 necess\u00e1rio mudar para um plano pago para as probabilidades e fins sofisticados para verificar demandas espec\u00edficas e encontrar consultas moderadas.\n<\/p>\n<h5>\n  Compreendendo uma consulta lenta com EXPLAIN<br \/>\n<\/h5>\n<p>\n  At\u00e9 este ponto, os dispositivos foram protegidos para encontrar perguntas moderadas. Atualmente, deve-se saber por que essas investiga\u00e7\u00f5es est\u00e3o atrapalhando as coisas.\n<\/p>\n<p>\n  A palavra de ordem EXPLAIN do MySQL pode permitir, er, esclarecer o que est\u00e1 acontecendo. Adicionar EXPLAIN no in\u00edcio de uma consulta indica como o MySQL executa uma pergunta. Para consultas complicadas, o EXPLAIN pode ajudar a distinguir focos moderados nos SQLs, por exemplo, subconsultas moderadas ou atividades in\u00fateis.\n<\/p>\n<h5>\n  Corrigindo consultas lentas<br \/>\n<\/h5>\n<p>\n  Uma vez que se sabe que as consultas s\u00e3o moderadas, e o EXPLAIN revelou ao usu\u00e1rio por que \u00e9, deve-se dar uma olhada em algumas op\u00e7\u00f5es para corrigir esses problemas sonolentos.\n<\/p>\n<p>\n  <strong>Op\u00e7\u00e3o 1: distorcendo a pergunta<\/strong>\n<\/p>\n<p>\n  Pode haver uma quest\u00e3o que est\u00e1 deixando a tela de Editar postagem em um ritmo muito lento. A consulta era um peda\u00e7o da caixa meta de Campos Personalizados.\n<\/p>\n<p>\n  A parte definitiva do SQL est\u00e1 trazendo uma lista meta_keys da tabela ks29so_postmeta que com toda a probabilidade n\u00e3o come\u00e7a com o sinal de sublinhado. A explica\u00e7\u00e3o GROUP BY implica que cada resultado \u00e9 especial.\n<\/p>\n<p>\n  Executando esta consulta v\u00e1rias vezes, aqui est\u00e1 o tempo que pode levar:\n<\/p>\n<p>\n  1,7145 seg\n<\/p>\n<p>\n  1,7911 seg\n<\/p>\n<p>\n  1,8076 seg\n<\/p>\n<p>\n  1,7707 seg\n<\/p>\n<p>\n  1,8456 seg\n<\/p>\n<p>\n  Pode-se desenvolver uma consulta que resulta em sa\u00eddas semelhantes. Tem que ser escolhido como meta_keys \u00fanico. Excepcional \u00e9 uma palavra equivalente a particular, que por acaso \u00e9 uma explica\u00e7\u00e3o SQL!\n<\/p>\n<p>\n  <strong>Op\u00e7\u00e3o 2: Adicionar um \u00edndice<\/strong>\n<\/p>\n<p>\n  Enquanto o usu\u00e1rio est\u00e1 executando uma pergunta SQL em uma tabela MySQL definida, ele precisa examinar toda a tabela para entender quais s\u00e3o as linhas que s\u00e3o significativas para a consulta espec\u00edfica. No momento em que a mesa fica enorme, essa verifica\u00e7\u00e3o come\u00e7a a demorar um pouco.\n<\/p>\n<p>\n  \u00c9 a\u00ed que entram os registros do MySQL. As listas pegam as informa\u00e7\u00f5es em uma tabela e as organizam de forma a tornar as informa\u00e7\u00f5es muito menos dif\u00edceis de encontrar. Ao classificar as informa\u00e7\u00f5es de uma maneira espec\u00edfica, os arquivos ajudam a diminuir a medida de filtragem que o MySQL realiza para cada consulta.\n<\/p>\n<p>\n  Os arquivos podem ser adicionados a segmentos \u00fanicos ou em v\u00e1rias se\u00e7\u00f5es.\n<\/p>\n<p>\n  Com um arquivo em meta_key, o primeiro tempo de pergunta SQL se parece um pouco com isso:\n<\/p>\n<p>\n  0,0041 seg\n<\/p>\n<p>\n  0,0023 seg\n<\/p>\n<p>\n  0,0030 seg\n<\/p>\n<p>\n  0,0025 seg\n<\/p>\n<p>\n  0,0019 seg\n<\/p>\n<p>\n  Isso \u00e9 extremamente inteligente.\n<\/p>\n<p>\n  Uma express\u00e3o de alerta em arquivos: Toda vez que INSERT cria uma coluna ou UPDATE \u00e9 utilizado em uma tabela af, a lista \u00e9 redeterminada, o que pode ser uma atividade cara. Os registros tornam a leitura da tabela mais r\u00e1pida, mas a grava\u00e7\u00e3o \u00e9 mais lenta. Embora uma lista de \u00edndice posicionada corretamente possa funcionar extremamente bem, n\u00e3o se deve ficar obcecado por ela sem verificar os impactos gerais da lista no banco de dados.\n<\/p>\n<p>\n  <strong>Op\u00e7\u00e3o 3: armazenar em cache os resultados da consulta<\/strong>\n<\/p>\n<p>\n  Uma vez que se percebe que h\u00e1 uma quest\u00e3o moderada. Em vez de mudar a pergunta, pode haver um cen\u00e1rio em que ela apenas afaste os efeitos posteriores da investiga\u00e7\u00e3o. Dessa forma, limitaria a regularidade com que a investiga\u00e7\u00e3o era realizada e obteria um &#8220;passe livre&#8221; com mais frequ\u00eancia do que n\u00e3o.\n<\/p>\n<p>\n  A API WordPress Transients \u00e9 uma das formas de reservar as consultas. Os transientes s\u00e3o utilizados para eliminar as consequ\u00eancias de tarefas dispendiosas, por exemplo,\n<\/p>\n<ul>\n<li>Solicita\u00e7\u00f5es para sites externos (por exemplo, obter postagens cont\u00ednuas no Facebook)\n  <\/li>\n<li>Peda\u00e7os lentos de manuseio (por exemplo, buscando cordas enormes com uma articula\u00e7\u00e3o habitual)\n  <\/li>\n<li>Consultas de banco de dados lentas!\n  <\/li>\n<\/ul>\n<h5>\n  Escolhendo uma Abordagem<br \/>\n<\/h5>\n<p>\n  Existem v\u00e1rias alternativas que foram apresentadas e, provavelmente, dezessete abordagens diferentes para entender essa investiga\u00e7\u00e3o moderada. Qual abordagem deve ser tomada?\n<\/p>\n<p>\n  A escolha 1 (alterar a pergunta) produziu resultados brilhantes. No entanto, deve-se considerar a possibilidade de que a consulta modificada geralmente n\u00e3o tenha resultados semelhantes. Algu\u00e9m poderia inadvertidamente burlar o c\u00f3digo com uma pergunta um tanto estranha.\n<\/p>\n<p>\n  A alternativa 2 (incluindo um registro) nem sempre \u00e9 conceb\u00edvel, dependendo da tabela e se\u00e7\u00f5es utilizadas pela consulta. Por conta das tabelas do centro de desenvolvimento de aplicativos WordPress, seria necess\u00e1rio enfatizar os outros efeitos dos registros:\n<\/p>\n<ul>\n<li>A rotina de atualiza\u00e7\u00e3o do centro espera listas adicionais?\n  <\/li>\n<li>A inclus\u00e3o de um arquivo moderar\u00e1 diferentes consultas, como INSERT e UPDATE?\n  <\/li>\n<\/ul>\n<p>\n  A alternativa 3 (reservar os resultados por meio de moradores de rua) tem efeito insignificante \u2013 o usu\u00e1rio n\u00e3o precisa alterar a primeira consulta e n\u00e3o h\u00e1 necessidade de ajustar a estrutura do banco de dados.\n<\/p>\n<p>\n  Normalmente, as pessoas optam pela op\u00e7\u00e3o 3. No caso espec\u00edfico de algu\u00e9m, ele pode escolher outra alternativa com base na quest\u00e3o que est\u00e1 corrigindo ou no site espec\u00edfico com problemas de SQL. Certamente n\u00e3o h\u00e1 uma resposta \u00fanica para a maioria dos problemas de execu\u00e7\u00e3o, portanto, \u00e9 permitido divergir da decis\u00e3o do outro &#8211; ou tentar cada um dos tr\u00eas sem demora!\n<\/p>\n<h5>\n  Mantendo-se atualizado<br \/>\n<\/h5>\n<p>\n  Ele esbo\u00e7ou um problema genu\u00edno aqui. A caixa Custom Fields em CSS-Tricks realmente era um ofensor para algumas consultas de banco de dados extremamente moderadas. Da mesma forma, esbo\u00e7ou v\u00e1rias maneiras de poss\u00edveis acordos.\n<\/p>\n<p>\n  <strong>Concep\u00e7\u00e3o de novas ideias<\/strong>\n<\/p>\n<p>\n  Existem diferentes metodologias que podem ser adotadas para tentar acelerar a execu\u00e7\u00e3o de perguntas que envolvem mais trabalho do que simplesmente ajustar a consulta ou incluir uma lista. Uma das partes mais lentas da quest\u00e3o \u00e9 o trabalho feito para juntar as tabelas para ir do id do cliente ao id do item, e \u00e9 preciso fazer isso para cada cliente.\n<\/p>\n<p>\n  Pode-se desnormalizar as informa\u00e7\u00f5es criando uma tabela que armazene as informa\u00e7\u00f5es de permiss\u00e3o, juntamente com o ID do cliente e o ID do item para todas as licen\u00e7as e simplesmente fazer uma consulta para um cliente espec\u00edfico. Seria necess\u00e1rio modificar a tabela utilizando gatilhos MySQL em INSERT\/UPDATE\/DELETE para a tabela de licen\u00e7as (ou outros dependendo de como as informa\u00e7\u00f5es podem mudar), mas isso melhoraria significativamente a execu\u00e7\u00e3o do questionamento dessas informa\u00e7\u00f5es.\n<\/p>\n<p>\n  Assim, se v\u00e1rias jun\u00e7\u00f5es reduzirem a quest\u00e3o no MySQL, pode ser mais r\u00e1pido dividir a consulta em pelo menos duas articula\u00e7\u00f5es e execut\u00e1-las independentemente em PHP e depois coletar e canalizar os resultados em c\u00f3digo.\n<\/p>\n<\/p>\n<div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\n  Fonte de grava\u00e7\u00e3o: instantshift.com\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Consultas SQL moderadas podem atrapalhar a execu\u00e7\u00e3o do site de desenvolvimento de aplicativos WordPress. De vez em quando, consultas moderadas s\u00e3o um efeito colateral de SQL inadequadamente estruturado que nunca deveria ter sido feito dessa maneira. Al\u00e9m do mais, em alguns casos, as perguntas moderadas eram, na verdade, perguntas r\u00e1pidas em um determinado ponto &#8211; mas, \u00e0 medida que o site se tornava mais experiente, a consulta ficava cada vez mais lenta, impotente para ficar ciente do extenso banco de dados. Apesar de como o SQL ficou moderado, deve-se investigar algumas abordagens para descobrir e corrigir problemas no desenvolvimento de aplicativos WordPress. Aqui e ali pode-se exigir certos web \u2026<\/p>\n","protected":false},"author":1,"featured_media":204810,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[150,228,59],"tags":[],"class_list":["post-261179","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dicas-e-truques-da-web","category-livros-didaticos","category-web-e-wordpress-2"],"_links":{"self":[{"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/261179","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/comments?post=261179"}],"version-history":[{"count":0,"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/261179\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/204810"}],"wp:attachment":[{"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=261179"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=261179"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=261179"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}