NaplóindexDockup / terepjegyzet
Note / database-scaling-strategies

Adatbázis-skálázási stratégiák növekvő startupok számára

A vertikális skálázástól a shardingig: ismerd meg azokat a stratégiákat, amelyek növekedés közben is biztosítják adatbázisod megfelelő teljesítményét.

A skálázás kihívása

A startupod növekszik. Gratulálunk! A növekedés azonban kihívásokkal is jár – különösen az adatbázisod számára. Így tarthatod megfelelő teljesítményűen az adatrétegedet.

1. szakasz: Vertikális skálázás

A legegyszerűbb megközelítés: szerezz be egy nagyobb gépet.

Előnyök

  • Nincs szükség kódmódosításokra
  • Egyszerűen bevezethető
  • A legtöbb korai fázisú startup számára megfelelő

Hátrányok

  • Van felső korlátja
  • Drága lehet
  • Egyetlen hibapontot jelent

2. szakasz: Read replica-k

Válaszd külön az olvasási és írási műveleteket.

// Write to primary
await primaryDb.insert(data);

// Read from replica
const results = await replicaDb.query(query);

Mikor használd?

  • Olvasásintenzív terhelés esetén (legalább 80% olvasás)
  • Riportkészítéshez és analitikához
  • Földrajzilag elosztott rendszerekhez

3. szakasz: Connection pooling

Ne becsüld alá a connection pooling erejét.

# dockup.yaml
database:
  pool:
    min: 5
    max: 20
    idle_timeout: 30s

4. szakasz: Caching layer

Adj Redis- vagy Memcached-réteget a rendszerhez az adatbázis terhelésének csökkentéséhez.

async function getUser(id) {
  // Check cache first
  const cached = await redis.get(`user:${id}`);
  if (cached) return JSON.parse(cached);

  // Fall back to database
  const user = await db.users.findById(id);
  await redis.set(`user:${id}`, JSON.stringify(user), 'EX', 3600);
  return user;
}

5. szakasz: Sharding

A végső megoldás. Oszd szét az adataidat több adatbázis között.

Sharding-stratégiák

  • Range-based: Shardolás ID-tartományok alapján
  • Hash-based: Shardolás a kulcs hash-e alapján
  • Geographic: Shardolás a felhasználó tartózkodási helye alapján

A Dockup által kezelt adatbázisok

A skálázást automatikusan kezeljük:

  • Auto-scaling storage: Soha nem fogy el a tárhely
  • Read replicas: Beállítás egyetlen kattintással
  • Connection pooling: Beépített PgBouncer
  • Automatizált biztonsági mentések: Point-in-time recovery

Összegzés

Kezdj egyszerűen, és akkor skálázz, amikor szükséges. Ne tervezd túl korán a rendszert. A Dockup által kezelt adatbázisok veled együtt növekednek.