A szerver nélküli számítás megoldotta az alkalmazáskód „nincs kezelendő szerver" problémáját, de az adatbázisok kínosan kilógtak a sorból. Egy Workert ezredmásodpercek alatt futtathattál a peremen, majd nézhetted, ahogy egy távoli, egyetlen régióban lévő adatbázisra vár. A Cloudflare D1 bezárja ezt a rést: ez egy valódi SQL-adatbázis, SQLite-ra építve, amely a Cloudflare hálózatán él, és közvetlenül a Workerjeidhez kötődik. Hétköznapi SQL-t írsz, és csak a ténylegesen lefuttatott lekérdezésekért számláznak.

Ez az útmutató elmagyarázza, mi a D1, mibe kerül, hogyan kérdezd le egy Workerből, és mikor érdemes a KV vagy egy hagyományos Postgres-adatbázis helyett választani.

Röviden

  • A D1 egy SQLite-ra épülő, szerver nélküli SQL-adatbázis, közvetlenül a Cloudflare Workershez kötve
  • Az ingyenes csomag bőkezű: naponta 5 millió olvasott és 100 000 írott sor, plusz 5 GB tárhely
  • Az olvasott és írott sorokért fizetsz, nem az üzemidőért: a tétlen adatbázisok semmibe sem kerülnek
  • Ismerős SQL-t használ előkészített utasításokkal, így szinte nincs tanulási görbe
  • Összeáll a platform többi részével, a Workers AI -jel, az R2-vel és a KV-vel, teljes alkalmazások építéséhez
  • Kezeld vizuálisan az adatbázisaidat az ingyenes Easy Cloudflare D1 asztali alkalmazásommal

Mi a Cloudflare D1

A Cloudflare D1 egy menedzselt, szerver nélküli adatbázis: relációs SQL-tár, amely SQLite-ra épül, a világ egyik legjobban bevált adatbázismotorjára. A „szerver nélküli" itt azt jelenti, hogy soha nem provizionálsz példányt, nem választasz méretet, és nem tartasz semmit futásban. Létrehozol egy adatbázist, hozzákötöd egy Workerhez, és futtatsz SQL-t. A tárolást, a tartósságot és a skálázást a Cloudflare kezeli.

Mivel standard SQL-t beszél, a D1 azonnal ismerősnek tűnik bárkinek, aki valaha használt relációs adatbázist. Táblákat definiálsz, SELECT, INSERT, UPDATE és DELETE utasításokat írsz, indexeket hozol létre, és tranzakciókat használsz. A különbség üzemeltetési: nincs hangolandó kapcsolatkészlet, nincs foltozandó szerver, és nincs tétlenségi költség.

Cloudflare D1 árazás és ingyenes csomag

A D1 számlázási modellje a legjobb értelemben szokatlan: a lekérdezésekért fizetsz, olvasott és írott sorokban mérve, nem az időért. A tétlen adatbázis semmibe sem kerül, mert nincs futó példány. A 2026-os hivatalos D1-árazásból :

Workers Free csomag

ErőforrásNapi korlát
Olvasott soroknaponta 5 millió
Írott soroknaponta 100 000
Tárhelyösszesen 5 GB

Workers Paid csomag

ErőforrásBenne foglalt, majd
Olvasott sorokElső 25 milliárd / hó, majd 0,001 $ milliónként
Írott sorokElső 50 millió / hó, majd 1,00 $ milliónként
TárhelyElső 5 GB, majd 0,75 $ GB-hónaponként

Nincsenek adatátviteli vagy egress-díjak. Egy hasznos optimalizálási részlet: az indexek drámaian csökkenthetik a számlázható sorolvasásokat azzal, hogy a lekérdezések kevesebb sort vizsgálnak át, az írásmennyiség kis növekedése árán. Olvasásintenzív munkaterhelésnél a jó indexelés alacsonyan tartja mind a késleltetésedet, mind a számládat.

A D1 lekérdezése egy Workerből

Egy D1-adatbázist a wrangler.toml-odban kötsz össze, majd az env.DB-n keresztül éred el. A D1 előkészített utasításokat használ, amelyek megóvják a lekérdezéseidet az SQL-injektálástól azzal, hogy elkülönítik a lekérdezés szövegét az értékektől.

 1export default {
 2  async fetch(request, env) {
 3    // Read with a parameterised query
 4    const { results } = await env.DB
 5      .prepare("SELECT id, title FROM posts WHERE published = ? ORDER BY created_at DESC LIMIT 10")
 6      .bind(1)
 7      .all();
 8
 9    return Response.json(results);
10  },
11};

Az adatok beszúrása ugyanazt a mintát követi:

1await env.DB
2  .prepare("INSERT INTO posts (title, body, published) VALUES (?, ?, ?)")
3  .bind("Hello D1", "My first edge database post", 1)
4  .run();

Több utasítást is összevonhatsz, hogy hatékonyan, egyetlen oda-vissza fordulóban futtasd őket, ami az ajánlott megközelítés, ha több összefüggő írásod van.

Cloudflare D1 vs KV vs Postgres

A megfelelő tárolási primitív kiválasztása számít. Így viszonyul a D1 ahhoz a kettőhöz, amelyekkel a leggyakrabban összevetik.

IgényLegjobb választásMiért
Relációs adatok, lekérdezések, összekapcsolásokD1Valódi SQL táblákkal, indexekkel és tranzakciókkal
Egyszerű kulcs-érték keresések, konfiguráció, gyorsítótárazásKVEgyetlen kulcs gyors olvasásaira optimalizálva a peremen
Nagy meglévő relációs munkaterhelés, összetett bővítményekPostgres (pl. Hyperdrive-on keresztül)Érett motor nehéz, funkciógazdag munkaterhelésekhez

Röviden: használd a KV-t, ha csak a lehető leggyorsabban kell egy értéket lekérned egy kulcs alapján. Használd a D1-et, ha az adataid relációsak, és SQL-lel akarod lekérdezni őket. Nyúlj egy teljes Postgres-adatbázishoz (amelyhez a Workerek csatlakozhatnak, a Hyperdrive által gyorsítva), ha nagy, jól bejáratott relációs munkaterhelésed van, vagy olyan Postgres-specifikus funkciókra van szükséged, amelyeket az SQLite nem kínál.

Mikor a Cloudflare D1 a helyes választás

A D1 kiváló választás, amikor:

  • Az adataid relációsak, és profitálnak az SQL-lekérdezésekből, összekapcsolásokból és indexekből
  • A Workersre építesz, és az adatbázisodat ugyanazon a platformon szeretnéd tartani
  • A munkaterhelésed kiugró vagy alacsonytól mérsékeltig terjed, így a lekérdezésenkénti fizetés veri az állandóan futó példányt
  • Nulla üzemeltetési terhet akarsz: nincs provizionálás, foltozás vagy kapcsolatkészletezés
  • Megelégszel az SQLite funkciókészletével, amely az alkalmazási igények túlnyomó többségét lefedi

Kevésbé alkalmas a korlátait meghaladó, nagyon nagy adathalmazokhoz, vagy a Postgres-specifikus bővítményektől függő munkaterhelésekhez. Ezekhez inkább köss össze egy dedikált adatbázist a Workeredből.

Egy reális használati eset

Egy tipikus D1-alkalmazás: egy blog vagy kis SaaS-háttér, ahol egy Worker kéréseket szolgál ki, bejegyzéseket vagy felhasználói rekordokat kérdez le a D1-ből, a feltöltött fájlokat és képeket az R2 -ben tárolja, a forró értékeket a KV-ben gyorsítótárazza, és opcionálisan meghívja a Workers AI -t egy olyan funkcióhoz, mint az összefoglalás. Minden egyetlen platformon fut, a peremen, szerverek nélkül, olyan számlával, amely a tényleges használattal skálázódik. Ez ugyanaz az architektúraminta, amely az általam épített Cloudflare Pages felhasználói rendszer mögött áll.

A D1 vizuális kezelése

A migrációk futtatása és az adatok vizsgálata a parancssorból rendben van, de egy grafikus kliens gyorsabbá teszi a mindennapi munkát. Az ingyenes Easy Cloudflare D1 asztali alkalmazásom lehetővé teszi az adatbázisok és táblák böngészését, lekérdezések futtatását és a D1-adataid kezelését egy letisztult felületről Windowson, macOS-en és Linuxon, miközben a hitelesítő adataid helyben, a saját gépeden vannak titkosítva. És ha a stacked a D1-et a KV-vel párosítja gyorsítótárazáshoz, az ingyenes Easy Cloudflare KV alkalmazásom ugyanezt teszi a kulcs-érték névtereiddel.

Legfontosabb tudnivalók

  • A D1 egy SQLite-ra épülő, szerver nélküli SQL-adatbázis, közvetlenül a Cloudflare Workershez kötve
  • Az ingyenes csomag naponta 5 millió olvasást és 100 000 írást fed le 5 GB tárhellyel
  • A számlázás olvasott és írott soronként történik, nem óránként; a tétlen adatbázisok semmibe sem kerülnek
  • Standard SQL-t használ biztonságos előkészített utasításokkal, így a tanulási görbe minimális
  • Használd a KV-t kulcs-érték keresésekhez, a D1-et relációs SQL-hez, és a dedikált Postgres-t nehéz vagy bővítményspecifikus munkaterhelésekhez
  • A D1 az R2-vel, a KV-vel és a Workers AI-jal kombinálva teljes peremalkalmazásokat épít

Gyakran ismételt kérdések

Mi a Cloudflare D1? A D1 egy SQLite-ra épülő, szerver nélküli SQL-adatbázis, amely a Cloudflare hálózatán fut, és közvetlenül a Workershez kötődik. Standard SQL-t írsz, és soha nem provizionálsz vagy kezelsz szervert. A tárolást, a tartósságot és a skálázást a Cloudflare kezeli.

Ingyenes a Cloudflare D1? Van ingyenes csomag a Workers Free csomagban: naponta 5 millió olvasott és 100 000 írott sor, 5 GB tárhellyel. Sok kis alkalmazás teljesen e korlátokon belül fut. A Workers Paid csomag jelentősen megemeli a benne foglalt mennyiségeket.

Hogyan árazzák a D1-et? Az olvasott és írott sorokért fizetsz, nem az üzemidőért. A Paid csomagban az első 25 milliárd olvasott és 50 millió írott sor havonta benne van, utána milliónként 0,001 $ az olvasásokra és 1,00 $ az írásokra, a tárhely pedig 0,75 $ GB-hónaponként az első 5 GB felett. Nincsenek egress-díjak.

Mi a különbség a D1 és a KV között? A KV kulcs-érték tár, amely egyetlen kulcs gyors olvasásaira van optimalizálva, ideális gyorsítótárazáshoz és konfigurációhoz. A D1 relációs SQL-adatbázis strukturált adatokhoz, amelyeket összekapcsolásokkal, indexekkel és tranzakciókkal akarsz lekérdezni. Használd a KV-t kulcs szerinti keresésekhez, a D1-et relációs lekérdezésekhez.

Helyettesítheti a D1 a Postgres-t? Sok kis és közepes alkalmazás esetén igen, mert az SQLite lefedi a gyakori relációs igényeket. Nagyon nagy adathalmazokhoz, nehéz párhuzamos írási munkaterhelésekhez vagy Postgres-specifikus bővítményekhez egy dedikált, a Workeredből csatlakoztatott (a Hyperdrive által gyorsított) Postgres-adatbázis a jobb választás.

Hogyan kérdezem le a D1-et egy Workerből? Kösd össze az adatbázist a wrangler konfigurációdban, és érd el az env.DB-n keresztül. Használj előkészített utasításokat kötött paraméterekkel, például env.DB.prepare(“SELECT … WHERE id = ?”).bind(id).all(), ami megóvja a lekérdezéseket az SQL-injektálástól.