{"id":231822,"date":"2022-12-30T18:31:00","date_gmt":"2022-12-30T15:31:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231822"},"modified":"2022-12-30T18:32:42","modified_gmt":"2022-12-30T15:32:42","slug":"vaelimuistin-ymmaertaeminen-wordpressissae-osa-1","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/vaelimuistin-ymmaertaeminen-wordpressissae-osa-1\/","title":{"rendered":"V\u00e4limuistin ymm\u00e4rt\u00e4minen WordPressiss\u00e4, osa 1"},"content":{"rendered":"\n<p>Kirjoitin toukokuussa artikkelin <a href=\"https:\/\/wordpress.mediadoma.com\/fi\/kaeytaetkoe-wordpress-transientteja-evaesteiden-sijaan\/\" title=\"WordPress Transients API:n k\u00e4yt\u00f6st\u00e4.\">WordPress Transients API:n k\u00e4yt\u00f6st\u00e4.<\/a> Tiivist\u00e4n artikkelin n\u00e4in:<\/p>\n<blockquote>\n<p>Ev\u00e4steiden ja niiden vanhenemisominaisuuden simuloimiseksi WordPress-transienttien k\u00e4ytt\u00f6 voi olla varteenotettava ratkaisu.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/fi\/kaeytaetkoe-wordpress-transientteja-evaesteiden-sijaan\/\">https:\/\/wordpress.mediadoma.com\/fi\/kaeytaetkoe-wordpress-transientteja-evaesteiden-sijaan\/<\/a><\/p>\n<\/blockquote>\n<p>Vaikka artikkelin tarkoituksena oli luoda perusta sille, kuinka voimme suunnitella luokan, joka toimii Transients API:n kanssa ev\u00e4steiden k\u00e4ytt\u00e4ytymisen simuloimiseksi, yksi artikkelin sivuvaikutuksista on, ett\u00e4 se ei tehnyt hyv\u00e4\u00e4 ty\u00f6t\u00e4. selitt\u00e4\u00e4, kuinka Transients API (ja v\u00e4lityspalvelimen avulla, kuinka MySQL) toimii.<\/p>\n<p>David toi t\u00e4m\u00e4n tietooni s\u00e4hk\u00f6postitse <a href=\"https:\/\/updraftplus.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">UpDraft Plus -palvelussa.<\/a><\/p>\n<p>Joten ajattelin, ett\u00e4 oli hy\u00f6dyllist\u00e4 puhua v\u00e4limuistin k\u00e4sitteest\u00e4 k\u00e4yt\u00e4nn\u00f6n tasolta, kuinka se on toteutettu WordPressiss\u00e4, ja sitten ehk\u00e4 katsoa, \u200b\u200bkuinka voimme hy\u00f6dynt\u00e4\u00e4 laajennuksia tai uudempaa teknologiaa tehostaaksemme sivustojamme ja sovelluksiamme sek\u00e4 saadaksemme paremman ymm\u00e4rryksen.<\/p>\n<h2>V\u00e4limuistin ymm\u00e4rt\u00e4minen: perusteet<\/h2>\n<p>V\u00e4limuistin k\u00e4site on suhteellisen helppo. Mutta mielest\u00e4ni se n\u00e4kyy parhaiten puhumalla ensin tietojen serialisoinnista ja noutamisesta ilman v\u00e4limuistia.<\/p>\n<h3>Ilman v\u00e4limuistia<\/h3>\n<h4>Datan kirjoittaminen<\/h4>\n<p>Aina kun kirjoitat tietoja taustalla olevaan tietokantaan, tallennat tietueen \u2013 tai tietuesarjan \u2013 tietokantaan.<\/p>\n<p>Kun esimerkiksi julkaiset julkaisun, kirjoitat tietueen taulukkoon viesteist\u00e4 ja taulukosta viestien metadatasta, jotka liittyv\u00e4t kaikkiin viestitunnuksella.<\/p>\n<p>Se, miten ne liittyv\u00e4t toisiinsa, ei ole t\u00e4rke\u00e4t\u00e4 t\u00e4lle viestille.<\/p>\n<p>Sen sijaan t\u00e4ss\u00e4 osassa on ymm\u00e4rrett\u00e4v\u00e4, ett\u00e4 kun dataa kirjoitetaan tietokantaan, syntyy v\u00e4hint\u00e4\u00e4n yksi tietue, ellei useita.<\/p>\n<h4>Datan lukeminen<\/h4>\n<p>Kun vierailija saapuu sivustolle lukeakseen kyseisen viestin, kaikki kyseisen viestin tiedot pyydet\u00e4\u00e4n tietokannasta, toimitetaan WordPress-sovellukselle ja render\u00f6id\u00e4\u00e4n sitten k\u00e4ytt\u00f6liittym\u00e4ss\u00e4.<\/p>\n<p>Ajattele t\u00e4t\u00e4 koko prosessia matkana:<\/p>\n<ol>\n<li>\u2753 Vierailija pyyt\u00e4\u00e4 sivua,<\/li>\n<li>\ud83d\udd0d verkkopalvelin tunnisti, mik\u00e4 sivu ladataan,<\/li>\n<li>\ud83d\udcc2 sivua pyydet\u00e4\u00e4n tietokannasta useista taulukoista,<\/li>\n<li>\ud83c\udfd7 tiedot kootaan ja l\u00e4hetet\u00e4\u00e4n ydinsovellukseen,<\/li>\n<li>\ud83d\udda5 Tiedot esitet\u00e4\u00e4n k\u00e4ytt\u00e4j\u00e4lle.<\/li>\n<\/ol>\n<p>Matka alkaa, kun k\u00e4ytt\u00e4j\u00e4 pyyt\u00e4\u00e4 sivua, ja p\u00e4\u00e4ttyy, kun tieto esitet\u00e4\u00e4n h\u00e4nelle selaimessa.<\/p>\n<h4>Se on matka<\/h4>\n<p>Ja ilman v\u00e4limuistia, t\u00e4m\u00e4 tapahtuu jokaiselle k\u00e4ytt\u00e4j\u00e4lle. Toisin sanoen jokaisen sivustollasi vierailevan k\u00e4ytt\u00e4j\u00e4n on teht\u00e4v\u00e4 matka.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-159466-61e6f57b465f7.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-159466-61e6f57b465f7.png\" alt=\"V\u00e4limuistin ymm\u00e4rt\u00e4minen WordPressiss\u00e4, osa 1\"><\/a><\/p>\n<p>Siit\u00e4 voi tulla eritt\u00e4in kallista resurssien ja ajan suhteen (etenkin tietokantasi koosta riippuen).<\/p>\n<p>Mutta t\u00e4ss\u00e4 v\u00e4limuisti voi tulla esiin.<\/p>\n<h3>Ennen v\u00e4limuistiin siirtymist\u00e4<\/h3>\n<p>V\u00e4limuistin ideana on nopeuttaa koko prosessi. Eli jos tied\u00e4mme, ett\u00e4 matka on tulossa, voimme s\u00e4ilytt\u00e4\u00e4 tiedot sellaisessa paikassa, ett\u00e4 ne on jo koottu ja noudettavissa nopeammin.<\/p>\n<p>Ennen kuin puhun kuitenkin, jonka aion seuraavassa viestiss\u00e4, huomaa, ett\u00e4 t\u00e4m\u00e4 on kuin matkaa sen palvelimen kiintolevylle, jolla sivustoa is\u00e4nn\u00f6id\u00e4\u00e4n joka kerta, kun sivustolla vieraillaan.<\/p>\n<p>Koska viime k\u00e4dess\u00e4 tietokanta, tiedostot ja kaikki sivuston virrank\u00e4ytt\u00f6\u00f6n tarvittava omaisuus sijaitsevat kiintolevyll\u00e4. Ja kyll\u00e4, asiat, kuten solid-state-asemat, voivat nopeuttaa t\u00e4t\u00e4 prosessia, mutta se ei silti ole niin optimaalinen kuin mahdollista.<\/p>\n<p>Ja siin\u00e4 v\u00e4limuisti tulee kuvaan. Transients API:n ymm\u00e4rt\u00e4miseksi paremmin on t\u00e4rke\u00e4\u00e4 ymm\u00e4rt\u00e4\u00e4 v\u00e4limuisti, mik\u00e4 edellytt\u00e4\u00e4 ensin perustietoa siit\u00e4, miten asiat toimivat ilman v\u00e4limuistia.<\/p>\n<h3>Se on Primer<\/h3>\n<p>Joten pid\u00e4 t\u00e4t\u00e4 perustietona tietokannan tukeman sivuston toiminnasta ilman v\u00e4limuistia. Ja sitten rakennamme t\u00e4st\u00e4 lis\u00e4\u00e4 seuraavassa postauksessa.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>V\u00e4limuistin ymm\u00e4rt\u00e4minen WordPressiss\u00e4 aloittamalla perusasioista ymm\u00e4rt\u00e4m\u00e4ll\u00e4 matkan k\u00e4site sivustolla ilman v\u00e4limuistia.<\/p>\n","protected":false},"author":1,"featured_media":223830,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[719,895,813,917,834,843,1088,864],"tags":[1166],"class_list":["post-231822","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kehittaejae","category-koodi","category-laajennuksia","category-muut","category-opas-aloittelijoille","category-opetusohjelmia","category-sivuston-nopeus","category-wordpress-5","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/231822","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/comments?post=231822"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/231822\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/223830"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=231822"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=231822"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=231822"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}