Index denníkaDockup / poznámka z terénu
Note / database-scaling-strategies

Stratégie škálovania databázy pre rastúce startupy

Od vertikálneho škálovania až po sharding: osvojte si stratégie, vďaka ktorým zostane vaša databáza výkonná aj počas rastu.

Výzva škálovania

Váš startup rastie. Gratulujeme! S rastom však prichádzajú aj výzvy — najmä pre vašu databázu. Takto udržíte výkonnú dátovú vrstvu.

Etapa 1: Vertikálne škálovanie

Najjednoduchší prístup: zaobstarajte si výkonnejší server.

Výhody

  • Nevyžaduje zmeny v kóde
  • Jednoduchá implementácia
  • Funguje pre väčšinu startupov v počiatočnej fáze

Nevýhody

  • Má svoje limity
  • Môže byť nákladné
  • Predstavuje jediný bod zlyhania

Etapa 2: Read repliky

Oddeľte operácie čítania a zápisu.

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

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

Kedy ich použiť

  • Workloady s prevahou čítania (80 % a viac čítaní)
  • Reporting a analytika
  • Geografická distribúcia

Etapa 3: Connection pooling

Nepodceňujte silu connection poolingu.

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

Etapa 4: Caching layer

Pridajte Redis alebo Memcached a znížte tak zaťaženie databázy.

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;
}

Etapa 5: Sharding

Krajná možnosť. Rozdeľte dáta medzi viacero databáz.

Stratégie shardingu

  • Podľa rozsahov: Shardovanie podľa rozsahov ID
  • Podľa hashu: Shardovanie podľa hashu kľúča
  • Geografické: Shardovanie podľa lokality používateľa

Spravované databázy v Dockup

Škálovanie zabezpečujeme automaticky:

  • Automatické škálovanie úložiska: Nikdy vám nedôjde miesto
  • Read repliky: Nastavenie jedným kliknutím
  • Connection pooling: Integrovaný PgBouncer
  • Automatizované zálohy: Obnova k ľubovoľnému bodu v čase

Záver

Začnite jednoducho a škálujte podľa potreby. Na začiatku zbytočne nekomplikujte architektúru. Spravované databázy v Dockup rastú spolu s vami.