{"id":231840,"date":"2022-12-30T10:16:00","date_gmt":"2022-12-30T07:16:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231840"},"modified":"2022-12-30T20:05:16","modified_gmt":"2022-12-30T17:05:16","slug":"vaelimuistin-ymmaertaeminen-wordpressissae-osa-3","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/vaelimuistin-ymmaertaeminen-wordpressissae-osa-3\/","title":{"rendered":"V\u00e4limuistin ymm\u00e4rt\u00e4minen WordPressiss\u00e4, osa 3"},"content":{"rendered":"\n<p>Kahdessa edellisess\u00e4 viestiss\u00e4 olen puhunut <a href=\"https:\/\/wordpress.mediadoma.com\/fi\/vaelimuistin-ymmaertaeminen-wordpressissae-osa-1\/\" title=\"v\u00e4limuistin perusteista\">v\u00e4limuistin perusteista<\/a> ja siit\u00e4, <a href=\"https:\/\/wordpress.mediadoma.com\/fi\/vaelimuistin-ymmaertaeminen-wordpressissae-osa-2\/\" title=\"miten v\u00e4limuisti toimii WordPressiss\u00e4\">miten v\u00e4limuisti toimii WordPressiss\u00e4<\/a>, ainakin jossain m\u00e4\u00e4rin.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-159394-61e6f44620ee5.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-159394-61e6f44620ee5.png\" alt=\"V\u00e4limuistin ymm\u00e4rt\u00e4minen WordPressiss\u00e4, osa 3\"><\/a><\/p>\n<p>Mutta muista, ett\u00e4 t\u00e4m\u00e4n sarjan motiivina oli s\u00e4hk\u00f6posti joltakin, joka ajatteli, ett\u00e4 voisin paremmin selitt\u00e4\u00e4, kuinka transientit ja v\u00e4limuisti toimivat WordPressiss\u00e4 ja miksi on t\u00e4rke\u00e4\u00e4 ymm\u00e4rt\u00e4\u00e4, kuinka kaikki toimii yhdess\u00e4 toistensa kanssa.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-159394-61e6f44926a61.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-159394-61e6f44926a61.png\" alt=\"V\u00e4limuistin ymm\u00e4rt\u00e4minen WordPressiss\u00e4, osa 3\"><\/a><\/p>\n<p>Joten t\u00e4ss\u00e4 viestiss\u00e4 pyrin tuomaan kaiken yhteen ja puhumaan siit\u00e4, kuinka <a href=\"https:\/\/codex.wordpress.org\/Transients_API\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Transients API<\/a> toimii yhdess\u00e4 <a href=\"https:\/\/www.mysql.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">MySQL<\/a> :n kanssa, miksi on t\u00e4rke\u00e4\u00e4 ymm\u00e4rt\u00e4\u00e4 suhde ja kuinka k\u00e4sitell\u00e4 t\u00e4t\u00e4 eteenp\u00e4in.<\/p>\n<h2>Kuinka transientit toimivat WordPressiss\u00e4?<\/h2>\n<h3>Kuinka transientit toimivat<\/h3>\n<p>Ensinn\u00e4kin Codexin mukaan transientit toimivat n\u00e4in:<\/p>\n<blockquote>\n<p>T\u00e4m\u00e4 sivu sis\u00e4lt\u00e4\u00e4 <strong>WordPress Transients API<\/strong> :n teknisen dokumentaation, joka tarjoaa yksinkertaisen ja standardoidun tavan tallentaa v\u00e4limuistiin tallennettuja tietoja v\u00e4liaikaisesti tietokantaan antamalla sille mukautettu nimi ja ajanjakso, jonka j\u00e4lkeen se vanhenee ja poistetaan.<\/p>\n<p><a href=\"https:\/\/codex.wordpress.org\/Transients_API\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Transients API WordPress Codexin kautta<\/a><\/p>\n<\/blockquote>\n<p>Ajatus t\u00e4m\u00e4n takana n\u00e4ytt\u00e4\u00e4 riitt\u00e4v\u00e4n yksinkertaiselta, eik\u00f6?<\/p>\n<ol>\n<li>Tallennat vaihtoehdon tietokantaan,<\/li>\n<li>Aseta aika, kuinka kauan sen pit\u00e4isi olla olemassa,<\/li>\n<li>Sitten sit\u00e4 s\u00e4ilytet\u00e4\u00e4n sen ajan<\/li>\n<li>Ja jos sit\u00e4 pyydet\u00e4\u00e4n vanhenemisen j\u00e4lkeen, se haetaan ja siirret\u00e4\u00e4n takaisin v\u00e4liaikaiseen tilaan.<\/li>\n<\/ol>\n<p>Joten miss\u00e4 se h\u00e4mmennys piilee?<\/p>\n<p>Kuten ensimm\u00e4isess\u00e4 viestiss\u00e4 mainittiin, en ollut varma siit\u00e4, kuinka kauan ohimenev\u00e4t tiedot olisivat saatavilla. Sen sijaan, ett\u00e4 se olisi v\u00e4himm\u00e4isaika, jonka tiedot ovat saatavilla, se on enimm\u00e4isaika.<\/p>\n<p>T\u00e4m\u00e4 tarkoittaa, ett\u00e4 jos asetat jotain olevan saatavilla p\u00e4iv\u00e4ksi, se on saatavilla p\u00e4iv\u00e4n ajan. Ei v\u00e4hemp\u00e4\u00e4; ei enemp\u00e4\u00e4. Ja kun tuo aika on kulunut umpeen, se on luotava uudelleen ohimenev\u00e4\u00e4n tilaan.<\/p>\n<p>Ainakin t\u00e4m\u00e4 on sen takana oleva perinteinen viisaus. Se ei ole v\u00e4\u00e4rin, mutta siin\u00e4 on muutakin. T\u00e4ss\u00e4 se on kuitenkin hieman teknisemp\u00e4\u00e4.<\/p>\n<h3>Mik\u00e4 rooli MySQL:ll\u00e4 on?<\/h3>\n<p>Kun WordPress, hosting ja muut tekniikat ovat kehittyneet, my\u00f6s sovelluksen taustalla olevat tietokannat ovat muuttuneet. T\u00e4m\u00e4 ei ole hyv\u00e4 tai huono asia (vaikka voisimme ehk\u00e4 v\u00e4itt\u00e4\u00e4, ett\u00e4 se on hyv\u00e4 asia seuraavassa postauksessa).<\/p>\n<p>Mutta se voi auttaa selitt\u00e4m\u00e4\u00e4n, miksi transientit toimivat niin kuin ne toimivat, kun otetaan huomioon pino, jonka kanssa olemme tottuneet ty\u00f6skentelem\u00e4\u00e4n, ja kuinka ne eiv\u00e4t ehk\u00e4 toimi odotetulla tavalla ilman tietokantaj\u00e4rjestelmi\u00e4.<\/p>\n<p>Jos p\u00e4\u00e4t\u00e4t k\u00e4ytt\u00e4\u00e4 MySQL:\u00e4\u00e4 WordPress-asennuksesi tietokantana, mink\u00e4 uskallan sanoa, ett\u00e4 useimmat ihmiset tekev\u00e4t edelleen, <a href=\"https:\/\/codex.wordpress.org\/Options_API\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Asetukset-taulukossa<\/a> olevat tiedot (johon my\u00f6s transientit tallennetaan), Transients-sovellusliittym\u00e4 toimii edell\u00e4 kuvattu.<\/p>\n<p>Mutta mit\u00e4 tapahtuu, kun otat k\u00e4ytt\u00f6\u00f6n muita v\u00e4limuistimuotoja, kuten objektien v\u00e4limuistiin tallentamista ohjelmistojen, kuten <a href=\"https:\/\/www.memcached.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Memcached<\/a> tai <a href=\"https:\/\/redis.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Redis<\/a>, ja niin edelleen?<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-159394-61e6f44d72d4f.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-159394-61e6f44d72d4f.png\" alt=\"V\u00e4limuistin ymm\u00e4rt\u00e4minen WordPressiss\u00e4, osa 3\"><\/a><\/p>\n<p>Siin\u00e4 tapauksessa tiedot eiv\u00e4t v\u00e4ltt\u00e4m\u00e4tt\u00e4 ole saatavilla odotetulla tavalla. Lyhyesti sanottuna v\u00e4limuistiohjelmisto voi halutessaan pudottaa tiedot, joita ei pyydet\u00e4 niin usein kuin muita tietoja. Toisin sanoen se antaa prioriteettitason tiedoille, joita pyydet\u00e4\u00e4n useammin.<\/p>\n<h3>Siirty\u00e4 eteenp\u00e4in<\/h3>\n<p>Kun otat kaikki edell\u00e4 mainitut huomioon, tarkastelet useita asioita:<\/p>\n<ol>\n<li>Transients API,<\/li>\n<li>tietokanta,<\/li>\n<li>kolmannen osapuolen v\u00e4limuistij\u00e4rjestelm\u00e4.<\/li>\n<\/ol>\n<p>Kun sinulla on Transients-sovellusliittym\u00e4 ja vakiotietokanta, p\u00e4rj\u00e4\u00e4t siin\u00e4 mieless\u00e4, ett\u00e4 asiat toimivat odotetulla tavalla.<\/p>\n<p>Mutta jos otat k\u00e4ytt\u00f6\u00f6n kolmannen osapuolen v\u00e4limuistij\u00e4rjestelm\u00e4n, tulos voi olla erilainen. Erityisesti asiat eiv\u00e4t v\u00e4ltt\u00e4m\u00e4tt\u00e4 toimi \u2013 eiv\u00e4tk\u00e4 todenn\u00e4k\u00f6isesti toimikaan \u2013 odotetulla tavalla.<\/p>\n<p>Toisin sanoen kolmannen osapuolen v\u00e4limuistij\u00e4rjestelm\u00e4 voi j\u00e4tt\u00e4\u00e4 huomioimatta kaikki tiedot, jotka se haluaa pudottaa, kun se katsoo sen tarvitsevan poistaa ne. T\u00e4m\u00e4 tarkoittaa, ett\u00e4 v\u00e4limuistissa ei ole sit\u00e4, mit\u00e4 luulet olevan saatavilla.<\/p>\n<p>Lopulta paras neuvo, jonka voin antaa, on t\u00e4m\u00e4:<\/p>\n<ol>\n<li>Jos k\u00e4yt\u00e4t MySQL:\u00e4\u00e4 ja Transients API:ta, asiat toimivat Codexissa kuvatulla tavalla.<\/li>\n<li>Jos toisaalta k\u00e4yt\u00e4t toista v\u00e4limuistij\u00e4rjestelm\u00e4\u00e4, on t\u00e4rke\u00e4\u00e4 ymm\u00e4rt\u00e4\u00e4, miten se toimii ja kuinka voit kirjoittaa koodia sit\u00e4 vastaan, jotta se toimisi haluamallasi tavalla.<\/li>\n<\/ol>\n<p>Eik\u00e4 t\u00e4h\u00e4n alukkeeseen ole en\u00e4\u00e4 mit\u00e4\u00e4n lis\u00e4tt\u00e4v\u00e4\u00e4 WordPressin v\u00e4limuistin ymm\u00e4rt\u00e4miseen.<\/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 on t\u00e4rke\u00e4\u00e4 luotaessa tehokkaita ratkaisuja. Mutta Transients API ei v\u00e4ltt\u00e4m\u00e4tt\u00e4 aina toimi. T\u00e4ss\u00e4 on syy.<\/p>\n","protected":false},"author":1,"featured_media":235967,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[750,719,895,813,917,834,843,1088,864],"tags":[1166],"class_list":["post-231840","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-avoin-laehdekoodi","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\/231840","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=231840"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/231840\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/235967"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=231840"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=231840"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=231840"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}