sql >> Databáze >  >> RDS >> Oracle

Jak navrhnu tabulku, která bude ukládat velmi velká data?

Tato velikost vás zařadí do oblasti VLDB (velmi velké databáze). V této nadmořské výšce se věci zásadně liší.

Na vaši otázku nelze odpovědět bez úplných požadavků na odpovědnost vaší žádosti. Musíte navrhnout výkon s ohledem na to, co by vaše aplikace měla DĚLAT s údaji.

Moje rada je dostat na palubu někoho, kdo má předchozí zkušenosti, jinak máte téměř 100% záruku, že selžete.

Pokud použijete Oracle, poskytuje několik typů rozdělení, které budete chtít používat velmi opatrně. Oddíly potřebujete pro administrativní účely (přesouvání dat, vytváření indexů, obnova dat) a také pro výkon dotazů:

  • Rozdělení podle rozsahu, například podle časového období
  • Rozdělení seznamu, pro ukládání částí dat řekněme v závislosti na zemi ('SE', 'US', 'GB')
  • Rozdělení pomocí hash. Ukládá vaše data do jednoho z oddílů na základě hashovací funkce
  • Nebo jakoukoli kombinaci výše uvedených

Také potřebujete někoho, kdo ví, jak postavit a nakonfigurovat monstrum se skutečně úžasnou I/O propustností. Potřebujete více než 1 GB/s, což není zrovna levné, když potřebujete uložit i 200 TB. Ve skutečnosti, pokud jsou oněch 200 TB pouze data tabulky, budete je muset zdvojnásobit nebo ztrojnásobit, abyste mohli vytvářet indexy, agregovat tabulky, zálohy atd.

Je nám líto, že jsem vám nemohl poskytnout řešení připravené k použití, ale chtěl jsem se ujistit, že rozumíte tomu, že nevytváříte pouze nadprůměrně velkou databázi. Je to masivní!



  1. 12 Běžně používané SQL operátory

  2. Jak předat proměnnou do klauzule IN?

  3. JSON_LENGTH() – Vrátí délku dokumentu JSON v MySQL

  4. Upozornění:mysqli_select_db() očekává přesně 2 parametry, z nichž 1 je uveden