{"id":257810,"date":"2024-02-03T16:46:00","date_gmt":"2024-02-03T13:46:00","guid":{"rendered":"https:\/\/inform.click\/nyttige-triks-for-a-finne-og-fikse-trege-wordpress-databasesporringer\/"},"modified":"2024-02-03T16:46:00","modified_gmt":"2024-02-03T13:46:00","slug":"nyttige-triks-for-a-finne-og-fikse-trege-wordpress-databasesporringer","status":"publish","type":"post","link":"https:\/\/inform.click\/no\/nyttige-triks-for-a-finne-og-fikse-trege-wordpress-databasesporringer\/","title":{"rendered":"Nyttige triks for \u00e5 finne og fikse trege WordPress-databasesp\u00f8rringer"},"content":{"rendered":"<p>\n  Moderate SQL-foresp\u00f8rsler kan sl\u00e5 ut til WordPress-applikasjonsutviklingsnettstedets utf\u00f8relse. En gang i blant er moderate henvendelser en ettervirkning av utilstrekkelig strukturert SQL som aldri burde v\u00e6rt gjort p\u00e5 den m\u00e5ten.\n<\/p>\n<p>\n  Dessuten var moderate henvendelser i noen tilfeller i virkeligheten raske sp\u00f8rsm\u00e5l p\u00e5 et visst tidspunkt &#8211; men etter hvert som siden ble mer erfaren, ble henvendelsen langsommere og tregere, maktesl\u00f8s til \u00e5 holde seg klar over den utvidede databasen.\n<\/p>\n<p>\n  Til tross for hvordan SQL ble moderat, b\u00f8r man unders\u00f8ke et par tiln\u00e6rminger for \u00e5 oppdage og fikse problemsp\u00f8rsm\u00e5l i WordPress-applikasjonsutviklingen. Her og der kan man trenge visse nettapplikasjoner og kanskje ikke ha tilstrekkelig energi, evner eller forbruksplaner til \u00e5 gj\u00f8re tilpassede forbedringer. \u00c5 lage uten noen forberedelse kan v\u00e6re svaret p\u00e5 noen problemer, men det kan ta lengre tid enn \u00e5 begynne fra en gjeldende kodebase. WordPress ble opprinnelig strukturert som et bloggstadium, og det fortsetter \u00e5 v\u00e6re enest\u00e5ende for det. Uansett, det har utviklet seg til et komplett innholdsstyringssystem (CMS) og kan for noen f\u00e5 form\u00e5l til og med lage en sterk nettapplikasjon \u2013 raskt og til en fundamentalt lavere kostnadsplan enn tilpasset forbedring. Mens WordPress tilbyr innebygde utviklingsapplikasjoner, den kan brukes til webapplikasjoner, for \u00e5 gj\u00f8re den ekstra nyttig. De iboende side- og innleggsstrukturene kan brukes til mange ting, men dersom man trenger tilpasset informasjon og felt som skal inkluderes, s\u00f8kes eller stilles sp\u00f8rsm\u00e5l, kontrolleres og vises, kreves det litt ekstra arbeid.\n<\/p>\n<h5>\n  Finne sakte s\u00f8k<br \/>\n<\/h5>\n<p>\n  \u00c5 finne opprinnelsen til moderate sp\u00f8rsm\u00e5l inkluderer to stadier:\n<\/p>\n<ol>\n<li>\u00c5 finne ut hvilke sp\u00f8rsm\u00e5l som egentlig er de moderate.\n  <\/li>\n<li>Identifisere programmet som driver dem.\n  <\/li>\n<\/ol>\n<p>\n  Man b\u00f8r ta en titt p\u00e5 to moduler og \u00e9n SaaS som kan gj\u00f8re dem i stand til \u00e5 oppdage moderate henvendelser.\n<\/p>\n<h5>\n  Sp\u00f8rremonitor<br \/>\n<\/h5>\n<p>\n  For \u00e5 benytte informasjon om siden som kj\u00f8res for tiden, kan denne modulen brukes. Til tross for en hel klynge med data om de interne aktivitetene til WordPress, gir den en punkt for punkt oppdeling av:\n<\/p>\n<ul>\n<li>Hvor mange sp\u00f8rsm\u00e5l oppsto p\u00e5 denne ettersp\u00f8rselen?\n  <\/li>\n<li>Hvilken foresp\u00f8rsel p\u00e5 siden tok maksimalt tid?\n  <\/li>\n<li>Hvilke kapasiteter investerte mest energi i SQL-sp\u00f8rsm\u00e5l?\n  <\/li>\n<li>Enten disse henvendelsene stammer fra moduler, fag eller WordPress-senteret\n  <\/li>\n<\/ul>\n<p>\n  Foresp\u00f8rselsskjermen gjenkjenner til og med moderate sp\u00f8rsm\u00e5l med nervepirrende r\u00f8dt innhold, noe som gj\u00f8r det veldig enkelt \u00e5 velge problemet SQL.\n<\/p>\n<h5>\n  Feils\u00f8kingslinje<br \/>\n<\/h5>\n<p>\n  Et annet fenomenalt instrument for \u00e5 finne frodig moderat SQL er den gamle, p\u00e5litelige Debug Bar-modulen. Debug Bar gir \u00e9n data om den indre funksjonen til WordPress n\u00e5r en side er lastet med saker som:\n<\/p>\n<ol>\n<li>Parametere for WP_Query\n  <\/li>\n<li>Foresp\u00f8rsel om data (koordinering av tellefornyelsesregler)\n  <\/li>\n<li>SQL-foresp\u00f8rsler produsert av denne siden\n  <\/li>\n<\/ol>\n<p>\n  For \u00e5 aktivere SQL-f\u00f8lge i feils\u00f8kingslinjen, b\u00f8r brukeren gj\u00f8re et poeng \u00e5 tillate SAVEQUERIES et sted p\u00e5 nettstedet \u2013 sannsynligvis i wp-config.php\n<\/p>\n<p>\n  Advarsel: SAVEQUERIES p\u00e5virker kj\u00f8ringen p\u00e5 nettstedet, og b\u00f8r antagelig ikke brukes p\u00e5 en generasjonsserver. Den kan imidlertid brukes p\u00e5 en avanseringsmaskin.\n<\/p>\n<p>\n  \u00c5 finne den moderate SQL-en er ikke ekstremt lett med Debug Bar. For eksempel gir den ikke de sorterbare tabellene eller har moderate foresp\u00f8rsler for brukeren. Det Debug Bar gir er en kapasitetsf\u00f8lging som leder brukeren n\u00f8yaktig mot retningen til opprinnelsen til et sp\u00f8rsm\u00e5l.\n<\/p>\n<p>\n  Dette er en oversikt over dokumentene som er lastet inn og kapasitetene som kommer ut i henvendelsen som blir utf\u00f8rt. Oftere enn ikke, er man opptatt av den absolutte fortsett-delen p\u00e5 sammendraget; dette er stedet det moderate sp\u00f8rsm\u00e5let ble utf\u00f8rt og hvor man b\u00f8r starte sin jakt. Det praktiske med \u00e5 ha innstillingen for hver kapasitet som stiller dette sp\u00f8rsm\u00e5let, er at det kan avsl\u00f8re innsikt i hvorfor SQL-en i alle fall ble utf\u00f8rt.\n<\/p>\n<h5>\n  NewRelic<br \/>\n<\/h5>\n<p>\n  NewRelic er en administrasjon som m\u00e5ler og skjermer gjennomf\u00f8ringen av webapplikasjonsutvikling, inkludert WordPress applikasjonsutvikling. Administrasjonen gir massevis av data om utf\u00f8relsen av nettstedet. Det er alt annet enn vanskelig \u00e5 miste all f\u00f8lelse av retning i informasjonen NewRelic gir brukeren hvert minutt detaljer for SQL-henvendelser.\n<\/p>\n<p>\n  Det er to bemerkelsesverdige kontraster mellom NewRelic og modulene vi refererte til f\u00f8r:\n<\/p>\n<ol>\n<li>NewRelic gir mye mer innsikt ang\u00e5ende utf\u00f8relse av PHP, ned til den eksakte beregningen av tid brukt i hver funksjon\n  <\/li>\n<li>NewRelic sporer hvert krav til nettstedet ute av syne, slik at man kan referere det senere for \u00e5 oppdage moderat SQL. Modulene gir ham bare denne siden.\n  <\/li>\n<\/ol>\n<p>\n  Det er viktig at NewRelic har et gratis arrangementsniv\u00e5 som gir generelle data om gjennomf\u00f8ringen av siden, men at man m\u00e5 g\u00e5 opp til en betalt ordning for de fancy oddsene for \u00e5 sjekke enest\u00e5ende krav og finne moderate henvendelser.\n<\/p>\n<h5>\n  Forst\u00e5 et sakte s\u00f8k med EXPLAIN<br \/>\n<\/h5>\n<p>\n  Frem til dette tidspunktet har enhetene v\u00e6rt sikret for \u00e5 finne moderate sp\u00f8rsm\u00e5l. For tiden b\u00f8r det v\u00e6re kjent hvorfor disse henvendelsene hindrer ting.\n<\/p>\n<p>\n  MySQL EXPLAIN-stikkordet kan gj\u00f8re det mulig \u00e5 klargj\u00f8re hva som skjer. \u00c5 legge til EXPLAIN i begynnelsen av en foresp\u00f8rsel indikerer hvordan MySQL utf\u00f8rer et sp\u00f8rsm\u00e5l. For kronglete foresp\u00f8rsler kan EXPLAIN hjelpe med \u00e5 skille moderate fokus i SQL-ene, for eksempel moderate undersp\u00f8rringer eller bortkastede aktiviteter.\n<\/p>\n<h5>\n  Retting av trege sp\u00f8rsm\u00e5l<br \/>\n<\/h5>\n<p>\n  Siden det er innsett at sp\u00f8rringene er moderate, og EXPLAIN har gitt brukeren avsl\u00f8rt hvorfor det er det, b\u00f8r man ta et par valg for \u00e5 fikse disse d\u00f8sige problemene.\n<\/p>\n<p>\n  <strong>Alternativ 1: Vri p\u00e5 sp\u00f8rsm\u00e5let<\/strong>\n<\/p>\n<p>\n  Det kan v\u00e6re et sp\u00f8rsm\u00e5l som setter skjermen til Rediger innlegg til en veldig lav hastighet. Henvendelsen var en del av metaboksen til Custom Fields.\n<\/p>\n<p>\n  Den bestemte delen av SQL bringer en meta_keys-liste fra ks29so_postmeta-tabellen som etter all sannsynlighet ikke begynner med tegnet understrek. GROUP BY-forklaringen antyder at hvert utfall er spesielt.\n<\/p>\n<p>\n  N\u00e5r du kj\u00f8rer denne foresp\u00f8rselen flere ganger, her er tiden i hvilken grad det kan ta:\n<\/p>\n<p>\n  1,7145 sek\n<\/p>\n<p>\n  1,7911 sek\n<\/p>\n<p>\n  1,8076 sek\n<\/p>\n<p>\n  1,7707 sek\n<\/p>\n<p>\n  1,8456 sek\n<\/p>\n<p>\n  Man kan utvikle en sp\u00f8rring som resulterer i lignende utganger. Det m\u00e5 velges som unike meta_keys. Eksepsjonell er et ekvivalent ord for spesielt, som tilfeldigvis er en SQL-forklaring!\n<\/p>\n<p>\n  <strong>Alternativ 2: Legge til en indeks<\/strong>\n<\/p>\n<p>\n  Mens brukeren kj\u00f8rer et SQL-sp\u00f8rsm\u00e5l p\u00e5 en satt MySQL-tabell, m\u00e5 den unders\u00f8ke hele tabellen for \u00e5 forst\u00e5 hvilke linjene som er viktige for den aktuelle foresp\u00f8rselen. N\u00e5r bordet blir stort, begynner sjekkingen \u00e5 ta ganske lang tid.\n<\/p>\n<p>\n  Det er stedet MySQL-poster kommer inn. Lister tar informasjonen i en tabell og ordner den slik at det blir mye mindre krevende \u00e5 finne informasjon. Ved \u00e5 sortere ut informasjonen p\u00e5 en bestemt m\u00e5te, hjelper filer med \u00e5 redusere mengden filtrering som MySQL oppn\u00e5r for hver foresp\u00f8rsel.\n<\/p>\n<p>\n  Filer kan legges til enkeltsegmenter eller over ulike seksjoner.\n<\/p>\n<p>\n  Med en fil p\u00e5 meta_key, ligner den aller f\u00f8rste SQL-sp\u00f8rretiden noe p\u00e5 dette:\n<\/p>\n<p>\n  0,0041 sek\n<\/p>\n<p>\n  0,0023 sek\n<\/p>\n<p>\n  0,0030 sek\n<\/p>\n<p>\n  0,0025 sek\n<\/p>\n<p>\n  0,0019 sek\n<\/p>\n<p>\n  Dette er ekstremt smart.\n<\/p>\n<p>\n  Et uttrykk for varsling p\u00e5 filer: Hver gang INSERT lager en kolonne eller OPPDATERING brukes p\u00e5 en tabell, blir listen ombestemt, noe som kan v\u00e6re en kostbar aktivitet. Opptegnelser gj\u00f8r det raskere \u00e5 lese fra tabellen, men det g\u00e5r tregere \u00e5 skrive til den. Selv om en riktig plassert indeksliste kan fungere ekstremt bra, b\u00f8r man ikke v\u00e6re besatt av den uten \u00e5 sjekke listens generelle innvirkning p\u00e5 databasen.\n<\/p>\n<p>\n  <strong>Alternativ 3: Bufre sp\u00f8rringsresultatene<\/strong>\n<\/p>\n<p>\n  N\u00e5r det er innsett at det er et moderat sp\u00f8rsm\u00e5l. I stedet for \u00e5 endre sp\u00f8rsm\u00e5let, kan det v\u00e6re et scenario der det bare legger bort ettervirkningene av henvendelsen. P\u00e5 den m\u00e5ten ville man begrense hvor regelmessig henvendelsen ble utf\u00f8rt, og han ville oftere enn ikke f\u00e5 &laquo;gratispass&raquo;.\n<\/p>\n<p>\n  WordPress Transients API er en av m\u00e5tene \u00e5 reservere sp\u00f8rringene p\u00e5. Transienter brukes for \u00e5 fjerne konsekvensene av kostbare oppgaver, f.eks.\n<\/p>\n<ul>\n<li>Foresp\u00f8rsler til eksterne nettsteder (for eksempel \u00e5 f\u00e5 p\u00e5g\u00e5ende Facebook-innlegg)\n  <\/li>\n<li>Langsomme h\u00e5ndteringsklumper (for eksempel p\u00e5 jakt etter enorme strenger med vanlig artikulasjon)\n  <\/li>\n<li>Langsomme databaseforesp\u00f8rsler!\n  <\/li>\n<\/ul>\n<h5>\n  Velge en tiln\u00e6rming<br \/>\n<\/h5>\n<p>\n  Det er en rekke alternativer som er lagt ut, og det er mest sannsynlig sytten ulike tiln\u00e6rminger for \u00e5 forst\u00e5 denne moderate henvendelsen. Hvilken tiln\u00e6rming b\u00f8r man ta?\n<\/p>\n<p>\n  Valg 1 (endre sp\u00f8rsm\u00e5let) ga str\u00e5lende resultater. Det b\u00f8r imidlertid vurderes at den modifiserte henvendelsen generelt sett ikke har lignende utfall. Man kunne uforvarende borke koden med et noe avgjort sp\u00f8rsm\u00e5l.\n<\/p>\n<p>\n  Alternativ 2 (inkludert en post) er ikke alltid tenkelig avhengig av tabellen og seksjonene som brukes av foresp\u00f8rselen. P\u00e5 grunn av WordPress applikasjonsutviklingssentertabeller, m\u00e5 man stresse over de andre effektene av postene:\n<\/p>\n<ul>\n<li>Forventer senterets oppfriskende rutine flere lister?\n  <\/li>\n<li>Vil det \u00e5 inkludere en fil moderere forskjellige henvendelser, som ligner p\u00e5 INSERT og UPDATE?\n  <\/li>\n<\/ul>\n<p>\n  Alternativ 3 (reservering av utfall ved hjelp av hjeml\u00f8se) har ubetydelig effekt \u2013 brukeren trenger ikke endre den f\u00f8rste henvendelsen og det er ikke behov for \u00e5 justere databasestrukturen.\n<\/p>\n<p>\n  Vanligvis velger folk alternativ 3. I ens spesifikke tilfelle kan han velge et annet alternativ basert p\u00e5 sp\u00f8rsm\u00e5let han fikser eller det spesifikke nettstedet har SQL-problemer. Det er absolutt ikke et svar som passer alle p\u00e5 de fleste utf\u00f8relsessp\u00f8rsm\u00e5l, s\u00e5 man har lov til \u00e5 avvike med andres avgj\u00f8relse \u2013 eller pr\u00f8v hver og en av de tre uten et \u00f8yeblikks forsinkelse!\n<\/p>\n<h5>\n  Holder seg oppdatert<br \/>\n<\/h5>\n<p>\n  Den har skissert et genuint problem her. Egendefinerte felt-boksen p\u00e5 CSS-Tricks var virkelig en lovbryter for noen ekstremt moderate databaseforesp\u00f8rsler. Den har ogs\u00e5 skissert ulike veier mot potensielle arrangementer.\n<\/p>\n<p>\n  <strong>Utvikling av helt nye ideer<\/strong>\n<\/p>\n<p>\n  Det er forskjellige metoder man kan bruke for \u00e5 fors\u00f8ke \u00e5 akselerere utf\u00f8relse av sp\u00f8rsm\u00e5l som inkluderer mer arbeid enn bare \u00e5 justere foresp\u00f8rselen eller inkludere en liste. En av de tregeste delene av sp\u00f8rsm\u00e5let er arbeidet som gj\u00f8res for \u00e5 sl\u00e5 sammen tabellene for \u00e5 g\u00e5 fra klient-ID til element-ID, og \u200b\u200bman m\u00e5 gj\u00f8re dette for hver klient.\n<\/p>\n<p>\n  Man kan denormalisere informasjonen ved \u00e5 lage en tabell som lagrer tillatelsesinformasjonen, sammen med klient-ID og vare-ID for alle lisenser og ganske enkelt sp\u00f8rre mot det for en bestemt klient. Man m\u00e5 endre tabellen ved \u00e5 bruke MySQL-utl\u00f8sere p\u00e5 INSERT\/UPDATE\/DELETE til lisenstabellen (eller andre som stoler p\u00e5 hvordan informasjonen kan endres), men dette vil betydelig forbedre utf\u00f8relsen av \u00e5 stille sp\u00f8rsm\u00e5l ved den informasjonen.\n<\/p>\n<p>\n  Derfor, hvis ulike sammenf\u00f8yninger modererer sp\u00f8rsm\u00e5let i MySQL, kan det v\u00e6re raskere \u00e5 dele opp foresp\u00f8rselen i minst to artikulasjoner og utf\u00f8re dem uavhengig i PHP og deretter samle og kanalisere resultatene i kode.\n<\/p>\n<\/p>\n<div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\n  Opptakskilde: instantshift.com\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Moderate SQL-foresp\u00f8rsler kan sl\u00e5 ut til WordPress-applikasjonsutviklingsnettstedets utf\u00f8relse. En gang i blant er moderate henvendelser en ettervirkning av utilstrekkelig strukturert SQL som aldri burde v\u00e6rt gjort p\u00e5 den m\u00e5ten. Dessuten var moderate henvendelser i noen tilfeller i virkeligheten raske sp\u00f8rsm\u00e5l p\u00e5 et visst tidspunkt &#8211; men etter hvert som siden ble mer erfaren, ble henvendelsen langsommere og tregere, maktesl\u00f8s til \u00e5 holde seg klar over den utvidede databasen. Til tross for hvordan SQL ble moderat, b\u00f8r man unders\u00f8ke et par tiln\u00e6rminger for \u00e5 oppdage og fikse problemsp\u00f8rsm\u00e5l i WordPress-applikasjonsutviklingen. Her og der kan man kreve visse nett&#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":[226,148,57],"tags":[],"class_list":["post-257810","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laereboker","category-nett-tips-og-triks","category-web-og-wordpress"],"_links":{"self":[{"href":"https:\/\/inform.click\/no\/wp-json\/wp\/v2\/posts\/257810","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inform.click\/no\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inform.click\/no\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inform.click\/no\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/inform.click\/no\/wp-json\/wp\/v2\/comments?post=257810"}],"version-history":[{"count":0,"href":"https:\/\/inform.click\/no\/wp-json\/wp\/v2\/posts\/257810\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inform.click\/no\/wp-json\/wp\/v2\/media\/204810"}],"wp:attachment":[{"href":"https:\/\/inform.click\/no\/wp-json\/wp\/v2\/media?parent=257810"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inform.click\/no\/wp-json\/wp\/v2\/categories?post=257810"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inform.click\/no\/wp-json\/wp\/v2\/tags?post=257810"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}