Jos sovelluksesi hakee Cloudflare D1:stä suuria tuloksia yhdellä kyselyllä, tarkista kysely ennen 4. marraskuuta: siitä päivästä alkaen yli 50 Mt:n tuloksen palauttava kysely aiheuttaa virheen. Muutos koskee tuloksen kokoa, ei tietokannan kokoa tai API-pyynnön kokoa; tuonti ja vienti REST API -rajapinnan kautta toimivat entiseen tapaan.
Mikä tarkalleen muuttuu
Cloudflare ilmoitti rajoituksesta 30. lokakuuta 2026. Uusi sääntö tulee voimaan keskiviikkona 4. marraskuuta: jos SQL-kyselyn tulos ylittää 50 Mt, D1 palauttaa virheen D1 query result exceeded the maximum response size limit of 50 MB. Yhtiön mukaan raja kattaa D1-kyselyiden 99,999. persentiilin, joten valtaosa kyselyistä jää rajan alle. Kyse on Cloudflaren alustaa koskevasta arviosta, ei yksittäistä sovellusta koskevasta takuusta.
On tärkeää erottaa kyselyn tulos ja tiedonsiirto. Rajoitus koskee D1-kyselyn palauttamaa tulosta; tietojen tuonti- ja vientitoiminnot REST API -rajapinnan kautta on nimenomaisesti rajattu säännön ulkopuolelle. Tarkista siis ennen kaikkea sovelluksen kyselyt, jotka lukevat paljon rivejä tai laajoja tietueita ja hakevat ne kokonaisuudessaan.
Miksi suuri tulos voi syntyä huomaamatta
Vastauksen koko ei määräydy pelkästään rivien lukumäärän perusteella. Useita sarakkeita sisältävä kysely voi palauttaa suuren tuloksen, vaikka tietueita olisi kohtuullinen määrä – etenkin, jos riveissä on pitkiä tekstejä tai muita kookkaita arvoja. SELECT * valitsee kaikki sarakkeet, vaikka kutsuva sovellus tarvitsisi niistä vain muutaman. Myös taulun kasvu voi ajan mittaan nostaa aiemmin turvallisen kyselyn rajan yli.
Käytännössä tämä tarkoittaa, että kannattaa tarkistaa kertaluonteisten hallinnollisten tietojenhakujen lisäksi sovelluksen säännölliset toiminnot, kuten raporttien käsittelijät, taustatehtävät ja API-metodit, jotka keräävät tietoja jatkokäsittelyä varten. Nämä ovat tarkastettavia käyttötapauksia, eivät väite siitä, että jokainen niistä välttämättä kärsisi muutoksesta.
Näin valmistelet kyselyt
Ilmoituksessaan Cloudflare suosittelee palautettavan aineiston rajaamista: valitse tarvittavat sarakkeet sen sijaan, että käyttäisit SELECT * -kyselyä, ja jaa suuret haut sivuihin komennoilla LIMIT ja OFFSET. Näin yksittäisen vastauksen koko pienenee ja käsittely jakautuu useisiin kyselyihin.


- Etsi laajat haut. Tarkista kyselyt, joissa käytetään
SELECT *-lausetta, ei rajata rivimäärää tai käsitellään suuria tekstikenttiä. - Rajaa valittavia sarakkeita. Luettele vain ne sarakkeet, joita käsittelyn seuraava vaihe todella tarvitsee.
- Jaa haku osiin. Lisää sivutus komennoilla
LIMITjaOFFSET, kuten Cloudflare ehdottaa, ja käsittele osat peräkkäin. - Tarkista toiminta osiin jakamisen jälkeen. Varmista, että sovellus yhdistää tulokset oikein eikä oleta saavansa koko hakutulosta yhdellä vastauksella.
Jos sovellus tarvitsee täydellisen aineiston erillistä vientiä varten, tarkista, sopiiko siihen REST API -rajapinnan vientitoiminto: Cloudflare kertoo erikseen, ettei uusi raja koske sitä. Tavallisen sovelluslogiikan kohdalla tämä poikkeus ei korvaa suurten SQL-vastausten tarkistamista.
Keitä määräaika koskee
Määräaika koskee suoraan D1:n käyttäjiä, joiden kyselyt palauttavat yli 50 Mt:n tuloksia. Tarkista erityisesti koodi, joka lataa tuloksen kokonaan muistiin, välittää sen komponenttien välillä tai muodostaa siitä raportin. Jos kyselyt palauttavat jo vain pieniä sivuja ja tarvittavat kentät, erillisiä muutoksia ei ehkä tarvita; päätös kannattaa tehdä kyselyiden todellisten vastauskokojen perusteella.
Tarkistus ennen 4. marraskuuta auttaa havaitsemaan riippuvuuden yhdestä suuresta vastauksesta ennen rajoituksen voimaantuloa. Cloudflaren arvion mukaan raja jää valtaosalle kyselyistä tavanomaisen koon yläpuolelle. Niiden järjestelmien kohdalla, joihin muutos vaikuttaa, suoraviivaisin suunnitelma on rajata valittavaa aineistoa, lukea se osissa tai käyttää vientiin tarkoitettua REST API -reittiä.