sql >> Databáze >  >> RDS >> Mysql

Architektura databáze pro miliony nových řádků denně

Pokud mluvíte o větších objemech dat, podívejte se na rozdělování MySQL na oddíly . U těchto tabulek by rozdělení podle dat/času jistě pomohlo výkonu. zde je slušný článek o rozdělení .

Podívejte se na vytvoření dvou samostatných databází:jedné pro všechna nezpracovaná data pro zápisy s minimálním indexováním; druhý pro hlášení pomocí agregovaných hodnot; buď pomocí dávkového procesu pro aktualizaci databáze sestav z databáze nezpracovaných dat, nebo pomocí replikace, která to udělá za vás.

UPRAVIT

Pokud chcete být se svými agregačními přehledy opravdu chytří, vytvořte si sadu agregačních tabulek („dnes“, „od týdne k datu“, „od měsíce do dne“, „podle roku“). Agregovat z nezpracovaných dat do „dnes“ buď denně, nebo v „reálném čase“; agregovat od „po dni“ po „od týdne do dne“ na noční bázi; od „week to date“ po „month to date“ na týdenní bázi atd. Při provádění dotazů připojte (UNION) příslušné tabulky pro časová období, která vás zajímají.

ÚPRAVA #2

Spíše než s jednou tabulkou na klienta pracujeme s jedním databázovým schématem na klienta. V závislosti na velikosti klienta můžeme mít několik schémat v jedné instanci databáze nebo vyhrazenou instanci databáze na klienta. Pro sběr nezpracovaných dat a pro agregaci/vytváření zpráv pro každého klienta používáme samostatná schémata. Provozujeme více databázových serverů, přičemž každý server je omezen na jednu instanci databáze. Kvůli odolnosti jsou databáze replikovány na více serverech a vyrovnávány zatížení pro lepší výkon.



  1. Převeďte uniklý znak Unicode zpět na skutečný znak v PostgreSQL

  2. Kontrola id oracle a názvu databáze

  3. Pochopení granularity zámků v MySQL

  4. Jak nakonfigurovat replikaci mezi clustery pro PostgreSQL