{"id":255983,"date":"2024-02-03T16:23:00","date_gmt":"2024-02-03T13:23:00","guid":{"rendered":"https:\/\/inform.click\/trucchi-utili-per-trovare-e-correggere-le-query-lente-del-database-di-wordpress\/"},"modified":"2024-02-03T16:23:00","modified_gmt":"2024-02-03T13:23:00","slug":"trucchi-utili-per-trovare-e-correggere-le-query-lente-del-database-di-wordpress","status":"publish","type":"post","link":"https:\/\/inform.click\/it\/trucchi-utili-per-trovare-e-correggere-le-query-lente-del-database-di-wordpress\/","title":{"rendered":"Trucchi utili per trovare e correggere le query lente del database di WordPress"},"content":{"rendered":"<p>\n  Richieste SQL moderate possono ostacolare l'esecuzione del sito di sviluppo di applicazioni WordPress. Di tanto in tanto, richieste moderate sono un effetto collaterale di SQL strutturato in modo inadeguato che non avrebbe mai dovuto essere fatto in quel modo.\n<\/p>\n<p>\n  Inoltre, in alcuni casi, le richieste moderate erano, in realt\u00e0, domande rapide a un certo punto, ma man mano che il sito diventava pi\u00f9 esperto, la richiesta diventava sempre pi\u00f9 lenta, impotente a stare al corrente del database in espansione.\n<\/p>\n<p>\n  Nonostante il modo in cui l'SQL \u00e8 diventato moderato, \u00e8 necessario esaminare un paio di approcci per scoprire e risolvere i problemi nello sviluppo dell'applicazione WordPress. Qua e l\u00e0 si potrebbe richiedere una determinata applicazione web e potrebbe non avere sufficiente energia, attitudine o piano di spesa per apportare miglioramenti personalizzati. Creare senza alcuna preparazione pu\u00f2 essere la risposta ad alcuni problemi, tuttavia pu\u00f2 richiedere pi\u00f9 tempo che iniziare da una base di codice corrente. WordPress \u00e8 stato inizialmente strutturato come una fase di blogging e continua ad essere eccezionale per questo. Comunque sia, \u00e8 diventato un sistema di gestione dei contenuti (CMS) completo e, per alcuni scopi, pu\u00f2 persino creare un'applicazione Web potente, rapidamente e con un piano di spesa fondamentalmente inferiore rispetto al miglioramento personalizzato. Sebbene WordPress offra applicazioni di sviluppo integrate, pu\u00f2 essere utilizzato per applicazioni web, al fine di renderlo pi\u00f9 utile. Le strutture intrinseche della pagina e dei post possono essere utilizzate per molte cose, ma nella remota possibilit\u00e0 che si desideri includere informazioni e campi personalizzati, ricercati o interrogati, controllati e mostrati, \u00e8 necessario un lavoro extra.\n<\/p>\n<h5>\n  Trovare query lente<br \/>\n<\/h5>\n<p>\n  Trovare l'origine delle domande moderate comprende due fasi:\n<\/p>\n<ol>\n<li>Scoprire quali sono davvero le domande moderate.\n  <\/li>\n<li>Identificare il programma che li sta eseguendo.\n  <\/li>\n<\/ol>\n<p>\n  Si dovrebbe dare un'occhiata a due moduli e un SaaS che possono consentire loro di scoprire richieste moderate.\n<\/p>\n<h5>\n  Controllo query<br \/>\n<\/h5>\n<p>\n  Per usufruire delle informazioni sulla pagina attualmente in esecuzione, \u00e8 possibile utilizzare questo modulo. Nonostante un intero cluster di dati sulle attivit\u00e0 interne di WordPress, fornisce una ripartizione punto per punto di:\n<\/p>\n<ul>\n<li>Quante domande si sono verificate su questa richiesta?\n  <\/li>\n<li>Quale richiesta sulla pagina ha richiesto il tempo massimo?\n  <\/li>\n<li>Quali capacit\u00e0 hanno investito pi\u00f9 energia nelle domande SQL?\n  <\/li>\n<li>Indipendentemente dal fatto che tali richieste provengano da moduli, argomenti o dal centro WordPress\n  <\/li>\n<\/ul>\n<p>\n  La schermata di richiesta riconosce anche domande moderate con contenuto rosso snervante, il che rende molto semplice selezionare il problema SQL.\n<\/p>\n<h5>\n  Barra di debug<br \/>\n<\/h5>\n<p>\n  Un altro strumento fenomenale per trovare SQL gelidamente moderato \u00e8 il vecchio e fidato modulo Debug Bar. La barra di debug fornisce un dato sul funzionamento interno di WordPress quando una pagina viene caricata con argomenti come:\n<\/p>\n<ol>\n<li>Parametri di WP_Query\n  <\/li>\n<li>Dati della richiesta (conteggio del coordinamento delle regole di rinnovamento)\n  <\/li>\n<li>Interrogazioni SQL prodotte dalla presente pagina\n  <\/li>\n<\/ol>\n<p>\n  Per abilitare SQL following nella barra di debug, l'utente dovrebbe fare in modo di consentire SAVEQUERIES da qualche parte sul sito, probabilmente in wp-config.php\n<\/p>\n<p>\n  Attenzione: SAVEQUERIES influisce sull'esecuzione sul sito e presumibilmente non dovrebbe essere utilizzato su un server di generazione. Tuttavia, pu\u00f2 essere utilizzato su una macchina di avanzamento.\n<\/p>\n<p>\n  Trovare l'SQL moderato non \u00e8 estremamente facile con la barra di debug. Ad esempio, non fornisce le tabelle ordinabili o presenta richieste moderate per l'utente. Ci\u00f2 che fornisce Debug Bar \u00e8 una capacit\u00e0 di seguire che indirizza l'utente precisamente verso la direzione dell'origine di una domanda.\n<\/p>\n<p>\n  Questa \u00e8 una carrellata dei documenti che vengono caricati e delle capacit\u00e0 che risultano nell'esecuzione dell'inchiesta. Il pi\u00f9 delle volte, si \u00e8 entusiasti della sezione continua assoluta del riepilogo; questo \u00e8 il luogo in cui \u00e8 stata eseguita la domanda moderata e dove si dovrebbe iniziare la sua caccia. La cosa comoda di avere l'impostazione di ogni capacit\u00e0 che richiede questa domanda \u00e8 che pu\u00f2 rivelare informazioni sul motivo per cui l'SQL \u00e8 stato eseguito in ogni caso.\n<\/p>\n<h5>\n  NewRelic<br \/>\n<\/h5>\n<p>\n  NewRelic \u00e8 un'amministrazione che misura e controlla l'esecuzione dello sviluppo di applicazioni Web, incluso lo sviluppo di applicazioni WordPress. L'amministrazione fornisce una tonnellata metrica di dati sull'esecuzione del sito. \u00c8 tutt'altro che difficile perdere il senso dell'orientamento nelle informazioni che NewRelic fornisce all'utente ogni minimo dettaglio per le richieste SQL.\n<\/p>\n<p>\n  Ci sono due contrasti degni di nota tra NewRelic e i moduli a cui abbiamo fatto riferimento in precedenza:\n<\/p>\n<ol>\n<li>NewRelic fornisce molte pi\u00f9 informazioni sull'esecuzione del PHP, fino al calcolo esatto del tempo trascorso in ciascuna funzione\n  <\/li>\n<li>NewRelic tiene traccia di ogni richiesta al sito lontano dalla vista, quindi \u00e8 possibile fare riferimento in seguito per scoprire SQL moderato. I moduli gli danno solo la pagina presente.\n  <\/li>\n<\/ol>\n<p>\n  \u00c8 importante che NewRelic abbia un livello di arrangiamento gratuito che fornisca dati generali sull'esecuzione del sito, tuttavia si dovr\u00e0 passare a un arrangiamento a pagamento per le cianfrusaglie fantasiose per controllare le richieste singolari e trovare richieste moderate.\n<\/p>\n<h5>\n  Comprensione di una query lenta con EXPLAIN<br \/>\n<\/h5>\n<p>\n  Fino a questo punto, i dispositivi sono stati protetti per trovare domande moderate. Al momento dovrebbe essere noto il motivo per cui tali indagini stanno ostacolando le cose.\n<\/p>\n<p>\n  La parola d'ordine MySQL EXPLAIN pu\u00f2 consentire, ehm, di chiarire cosa sta succedendo. L'aggiunta di EXPLAIN all'inizio di una richiesta indica come MySQL esegue una domanda. Per richieste contorte, EXPLAIN pu\u00f2 aiutare a distinguere focus moderati negli SQL, ad esempio sottoquery moderate o attivit\u00e0 dispendiose.\n<\/p>\n<h5>\n  Correzione delle query lente<br \/>\n<\/h5>\n<p>\n  Poich\u00e9 si \u00e8 capito che le query sono moderate e EXPLAIN ha rivelato all'utente il motivo per cui lo \u00e8, si dovrebbe dare un'occhiata a un paio di scelte per risolvere quei problemi sonnolenti.\n<\/p>\n<p>\n  <strong>Opzione 1: girare la domanda<\/strong>\n<\/p>\n<p>\n  Potrebbe esserci una domanda che rallenta molto la schermata di Modifica post. La richiesta era un pezzo del meta box di Custom Fields.\n<\/p>\n<p>\n  Il pezzo definitivo di SQL sta portando un elenco meta_keys dalla tabella ks29so_postmeta che con ogni probabilit\u00e0 non inizia con il segno di sottolineatura. La spiegazione GROUP BY implica che ogni risultato \u00e8 speciale.\n<\/p>\n<p>\n  Eseguendo questa richiesta pi\u00f9 volte, ecco il tempo fino a che punto pu\u00f2 richiedere:\n<\/p>\n<p>\n  1,7145 sec\n<\/p>\n<p>\n  1,7911 sec\n<\/p>\n<p>\n  1,8076 sec\n<\/p>\n<p>\n  1,7707 sec\n<\/p>\n<p>\n  1,8456 sec\n<\/p>\n<p>\n  Si potrebbe sviluppare una query che si traduce in output simili. Deve essere scelto come meta_keys unico nel suo genere. Eccezionale \u00e8 una parola equivalente per particolare, che guarda caso \u00e8 una spiegazione SQL!\n<\/p>\n<p>\n  <strong>Opzione 2: aggiunta di un indice<\/strong>\n<\/p>\n<p>\n  Mentre l'utente esegue una domanda SQL su una tabella MySQL impostata, deve esaminare l'intera tabella per capire quali sono le righe significative per la particolare richiesta. Nel momento in cui il tavolo diventa enorme, quel check inizia a richiedere un po' di tempo.\n<\/p>\n<p>\n  \u00c8 qui che entrano in gioco i record MySQL. Gli elenchi prendono le informazioni in una tabella e le organizzano in modo tale da rendere le informazioni molto meno impegnative da trovare. Ordinando le informazioni in un modo specifico, i file aiutano a ridurre la misura del filtraggio che MySQL compie per ogni richiesta.\n<\/p>\n<p>\n  I file possono essere aggiunti a singoli segmenti o su varie sezioni.\n<\/p>\n<p>\n  Con un file su meta_key, il primo question time SQL assomiglia in qualche modo a questo:\n<\/p>\n<p>\n  0,0041 sec\n<\/p>\n<p>\n  0,0023 sec\n<\/p>\n<p>\n  0,0030 sec\n<\/p>\n<p>\n  0,0025 sec\n<\/p>\n<p>\n  0,0019 sec\n<\/p>\n<p>\n  Questo \u00e8 estremamente intelligente.\n<\/p>\n<p>\n  Un'espressione di avviso sui file: ogni volta che INSERT crea una colonna o UPDATE viene utilizzato su una tabella af, l'elenco viene rideterminato, il che pu\u00f2 essere un'attivit\u00e0 costosa. I record rendono pi\u00f9 veloce la consultazione della tabella, ma la scrittura su di essa \u00e8 pi\u00f9 lenta. Sebbene un elenco di indici correttamente posizionato possa funzionare molto bene, non bisogna esserne ossessionati senza controllare l'impatto generale dell'elenco sul database.\n<\/p>\n<p>\n  <strong>Opzione 3: memorizzare nella cache i risultati della query<\/strong>\n<\/p>\n<p>\n  Una volta capito che c'\u00e8 una domanda moderata. Piuttosto che cambiare la domanda, pu\u00f2 esserci uno scenario in cui si limitano a mettere da parte i postumi dell'indagine. In questo modo, si limiterebbe la regolarit\u00e0 con cui viene eseguita l'indagine e si otterrebbe un &#8220;pass gratuito&#8221; il pi\u00f9 delle volte.\n<\/p>\n<p>\n  L'API Transient di WordPress \u00e8 uno dei modi per prenotare le query. I transitori vengono utilizzati per mettere da parte le conseguenze di attivit\u00e0 costose, ad esempio,\n<\/p>\n<ul>\n<li>Richieste a siti esterni (ad esempio ottenere post su Facebook in corso)\n  <\/li>\n<li>Grumi lenti di maneggevolezza (ad esempio alla ricerca di corde enormi con un'articolazione abituale)\n  <\/li>\n<li>Richieste di database lente!\n  <\/li>\n<\/ul>\n<h5>\n  Scegliere un approccio<br \/>\n<\/h5>\n<p>\n  Ci sono una serie di alternative che sono state presentate, e molto probabilmente ci sono diciassette approcci diversi per comprendere questa indagine moderata. Quale approccio si dovrebbe adottare?\n<\/p>\n<p>\n  La scelta 1 (cambiare la domanda) ha prodotto risultati brillanti. Tuttavia, va considerata la possibilit\u00e0 che l'indagine modificata non abbia generalmente esiti simili. Si potrebbe inconsapevolmente bordare il codice con una domanda un po' fuori luogo.\n<\/p>\n<p>\n  L'alternativa 2 (incluso un record) non \u00e8 sempre concepibile a seconda della tabella e delle sezioni utilizzate dall'inchiesta. A causa delle tabelle del centro di sviluppo di applicazioni WordPress, si dovrebbe sottolineare gli altri effetti dei record:\n<\/p>\n<ul>\n<li>La routine di aggiornamento del centro prevede elenchi aggiuntivi?\n  <\/li>\n<li>L'inclusione di un file moderer\u00e0 richieste diverse, simili a INSERT e UPDATE?\n  <\/li>\n<\/ul>\n<p>\n  L'alternativa 3 (riservare i risultati tramite i senzatetto) ha un effetto insignificante: l'utente non deve modificare la prima richiesta e non \u00e8 necessario modificare la struttura del database.\n<\/p>\n<p>\n  Di solito, le persone optano per l'opzione 3. Nel proprio caso specifico, pu\u00f2 scegliere un'altra alternativa basandosi sulla domanda che sta risolvendo o sul sito specifico che ha problemi con SQL. Non esiste certamente una risposta valida per tutti alla maggior parte dei problemi di esecuzione, quindi uno pu\u00f2 differire dalla decisione dell'altro, oppure tentare ognuno dei tre senza un attimo di ritardo!\n<\/p>\n<h5>\n  Rimanere aggiornato<br \/>\n<\/h5>\n<p>\n  Ha abbozzato un vero problema qui. La casella Campi personalizzati su CSS-Tricks era davvero un trasgressore per alcune richieste di database estremamente moderate. Allo stesso modo ha delineato vari modi verso potenziali accordi.\n<\/p>\n<p>\n  <strong>Ideazione di nuove idee<\/strong>\n<\/p>\n<p>\n  Esistono diverse metodologie che si possono adottare per tentare e accelerare l'esecuzione delle domande che includono pi\u00f9 lavoro rispetto alla semplice modifica della richiesta o all'inclusione di un elenco. Una delle parti pi\u00f9 lente della domanda \u00e8 il lavoro svolto per unire le tabelle per passare dall'ID cliente all'ID oggetto, e bisogna farlo per ogni cliente.\n<\/p>\n<p>\n  Si potrebbe denormalizzare le informazioni creando una tabella che memorizzi le informazioni sul permesso, accanto all'ID client e all'ID articolo per tutte le licenze e semplicemente facendo una richiesta per un particolare cliente. Sarebbe necessario modificare la tabella utilizzando i trigger MySQL su INSERT\/UPDATE\/DELETE nella tabella delle licenze (o altri in base a come le informazioni potrebbero cambiare), tuttavia ci\u00f2 migliorerebbe in modo significativo l'esecuzione della messa in discussione di tali informazioni.\n<\/p>\n<p>\n  Pertanto, se vari join moderano la domanda in MySQL, potrebbe essere pi\u00f9 veloce suddividere la domanda in almeno due articolazioni ed eseguirle indipendentemente in PHP e successivamente raccogliere e incanalare i risultati nel codice.\n<\/p>\n<\/p>\n<div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\n  Fonte di registrazione: instantshift.com\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Richieste SQL moderate possono ostacolare l&#8217;esecuzione del sito di sviluppo di applicazioni WordPress. Di tanto in tanto, richieste moderate sono un effetto collaterale di SQL strutturato in modo inadeguato che non avrebbe mai dovuto essere fatto in quel modo. Inoltre, in alcuni casi, le richieste moderate erano, in realt\u00e0, domande rapide a un certo punto, ma man mano che il sito diventava pi\u00f9 esperto, la richiesta diventava sempre pi\u00f9 lenta, impotente a stare al corrente del database in espansione. Nonostante il modo in cui l&#8217;SQL \u00e8 diventato moderato, \u00e8 necessario esaminare un paio di approcci per scoprire e risolvere i problemi nello sviluppo dell&#8217;applicazione WordPress. Qua e l\u00e0 si potrebbe richiedere un certo web &#8230;<\/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":[225,56,147],"tags":[],"class_list":["post-255983","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-libri-di-testo","category-web-e-wordpress","category-web-suggerimenti-e-trucchi"],"_links":{"self":[{"href":"https:\/\/inform.click\/it\/wp-json\/wp\/v2\/posts\/255983","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inform.click\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inform.click\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inform.click\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/inform.click\/it\/wp-json\/wp\/v2\/comments?post=255983"}],"version-history":[{"count":0,"href":"https:\/\/inform.click\/it\/wp-json\/wp\/v2\/posts\/255983\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inform.click\/it\/wp-json\/wp\/v2\/media\/204810"}],"wp:attachment":[{"href":"https:\/\/inform.click\/it\/wp-json\/wp\/v2\/media?parent=255983"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inform.click\/it\/wp-json\/wp\/v2\/categories?post=255983"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inform.click\/it\/wp-json\/wp\/v2\/tags?post=255983"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}