Elikkä siis, olisiko kellään tietoa kumpi kannattaa pistää hommiin: PHP vai Mysql.
Yksinkertaisena esimerkkinä päivämäärän konversio. Tämänhän voi tehdä suoraan MySQL:ssä niin että arvo palautetaan suoraan formatoituna haluamaan muotoon tai vaihtoehtoisesti tuoda raaka date-time ja antaa php:n parseroida se oikeaan formaattiin?
Myslillehän voi heittää varsin kimurantteja loogisia pähkinöitä ja käyttää php:tä vain ruutuprintterinä jos mysli on nopeampi... Ja jos tilanne on toisinpäin niin silloinhan myslistä kannattaa hakea arvoja ilman mitään konversiota ja antaa PHP:n laulaa.
Onko kellään heittää valistunutta arvausta kumpi prosessoi tiukemmin - ei tuossa nimenomaisessa tapauksessa vaan vastaavissa ihan yleisesti? Onko aiheesta testjä? Ainakaan google ei paljoa lämmittänyt ...
Yksinkertaisena esimerkkinä päivämäärän konversio. Tämänhän voi tehdä suoraan MySQL:ssä niin että arvo palautetaan suoraan formatoituna haluamaan muotoon tai vaihtoehtoisesti tuoda raaka date-time ja antaa php:n parseroida se oikeaan formaattiin?
Myslillehän voi heittää varsin kimurantteja loogisia pähkinöitä ja käyttää php:tä vain ruutuprintterinä jos mysli on nopeampi... Ja jos tilanne on toisinpäin niin silloinhan myslistä kannattaa hakea arvoja ilman mitään konversiota ja antaa PHP:n laulaa.
Onko kellään heittää valistunutta arvausta kumpi prosessoi tiukemmin - ei tuossa nimenomaisessa tapauksessa vaan vastaavissa ihan yleisesti? Onko aiheesta testjä? Ainakaan google ei paljoa lämmittänyt ...
Vastaukset 1
Vanhimmat
Tähän asiaan ei voi vastata yksinkertaisesti kumpa on nopeempa, vaan sinun täytyy itse tapaus kohtasesti testata molemmat tavat pitemmällä aika välillä ja tehdä niiden tulosten pohjalta päätös.
Tähän asiaan vaikuttaa niin monet asiat, kuten jos tietokanta palvelin on kuormitettu äärirajoille ja web(PHP) palvelin taas ei, niin silloin ilman muuta PHP puolella monimutkaset jutut ja tuommoset muunnokkset.
Jos taas MySQL ja PHP on samalla palvelimella, niin silloin tietokannalla.
Yleisesti ottaen kuitenkin voidaan sanoa, että tietokanta puolella suoraan mahdollisimman paljon, varsinkin silloin jos tarvitaan datasta vain pieni osa, kuten päiväyksestä vaikka pelkkä viikko, PHP:lle joutuisi näin ollen siirtämään turhaa dataa (koko päiväyksen) tämän lisäksi menisi vielä muunnos aikaa.
Ja jos PHP:n puolella päivämäärän haluaa muuntaa, niin silloin päivämäärä kannattaa laittaa suoraan timestamp muotoon, jota PHP tulkitsee suoraan. Ja muutoinkin silloin tietokanta rakenne ja tyypit kannattaa ajatella vähän toisin.
Eiköhän nykypäivänä PHP ja MySQL ole niin kehittyneitä, ettei eroa juurikaan ole noissa muunnos jutuissa(*), eikä muutenkaan. Varsinkin jos rakenne, tyypit, indeksit ja kyselyt ovat tehty oikein ja suunniteltu hyvin. Usein hitauteen on syynä puutteet noissa. MySQL:ssä on toiminto joka kertoo sarakkeille optimoijan mielestä parhaan tyypin.
* MySQL tallentaa datan heksoina, binäärinä jne... jolloin datan saa ilmeisesti joissain tapauksissa muunnettua suoraan haluttuun muotoon. PHP:n tapauksessa tapahtuisi jo yksi muunnos tietokannan puolella ja toinen sitten PHP:n puolella. Tämä on arvailua, koska en ole tutustunut tarkemmin miten MySQL tallentaa datan.