PHP vai MySQL prosessoimaan?

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 ...
1221
Äänestä

Muut lukivat myös

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.

Äänestä

Kommentoi aloitusta


Knigg kirjoitti:

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 ...

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu