Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PDO: fetchAll-metodi

Triton [16.08.2010 17:35:24]

#

Tässä on nyt taas tullut tuota PDO:ta käyteltyä, niin heräsi sellainen kysymys, että kun kerään sql-kyselyllä haetun datan fetchAll-metodilla, niin lataako tuo kaiken haetun datan muistiin, kun kerran metodi ne samassa taulukossa palauttaa? Mietin vaan, että kuinka käytännöllinen tuo metodi on hieman suurempien data määrien kohdalla...

Metabolix [16.08.2010 18:00:33]

#

Kyllä, se lataa kaiken muistiin. Myös tavallinen MySQL-haku (mysql_query) lataa kaiken muistiin, vaikkei data olekaan vielä yhdessä PHP:n muuttujassa. Tämä ei kuitenkaan yleensä ole ongelma.

Jos puhutaan todella suurista datamääristä, optimointi voi olla tarpeen. Perinteisten MySQL-funktioiden kohdalla pitää tällöin käyttää funktiota mysql_unbuffered_query, johon kuitenkin liittyy jonkin verran rajoituksia. PDO:n MySQL-haut ovat oletuksena puskuroimattomia, minkä vuoksi kahden kyselyn tuloksia ei voi PDO:lla selata samaan aikaan (paitsi tietenkin hakemalla yhden tulokset valmiiksi ennen toisen ajamista tai määräämällä erikseen, että käytetään puskuroituja hakuja).

Triton [16.08.2010 18:13:55]

#

Kiitti vastauksesta. Niin no data määrät tässä mun käytössä tuskin tulee ylittämään, sitä memory_limitin oletus määrää 8MT.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta