/ / SQL Schéma Návrh: jednotlivé tabuľky alebo hmotnostná tabuľka Škálovateľnosť - sql, databázový dizajn, optimalizácia, schéma, škálovateľnosť

Návrh schémy SQL: jednotlivé tabuľky alebo tabuľka hmotnosti Škálovateľnosť - sql, návrh databázy, optimalizácia, schéma, škálovateľnosť

Čo je efektívnejšia metóda navrhovania schém z hľadiska škálovateľnosti?

Ak má databáza viac používateľov a každého používateľamá objekty (pozostávajúce z údajov v dlhom texte, dátume a jedinečnom id), je to efektívnejšie (1) vytvoriť masovú tabuľku objektov, z ktorých každý má užívateľský stĺpec, alebo (2) vytvoriť jednotlivé tabuľky objektov pre každého používateľa?

Pri skúmaní som videl protichodné odpovede normalizácia databázy hovorí, aby sa jednotlivé stĺpce pre každého užívateľa, zatiaľ čo niekoľko príspevkov uvádza, že výkon sa zvyšuje pomocou tabuľky hmotnosti.

Edit: pre prehľadnosť sa zmenili "elementy" na "objekty".

odpovede:

2 pre odpoveď č. 1

Vo všeobecnosti chcete vytvoriť jednu tabuľku pre entitu a nerozdeliť ich do samostatných tabuliek pre používateľov.

Vďaka tomu je systém viac udržiavateľný. Dotazy v systéme sú konzistentné vo všetkých aplikáciách. Taktiež štruktúruje údaje spôsobom, akým sú databázy optimalizované pre prístup k nim.

Existuje niekoľko špecializovaných prípadov, kedy by ste to urobilirozdeliť užívateľské dáta do samostatných tabuliek alebo dokonca do samostatných databáz. Môže to byť požiadavka používateľa („naše údaje sa nemôžu miešať s nikým iným“). Môže byť potrebné podporovať rôzne politiky zálohovania a zabezpečenia. Všeobecným prístupom je však navrhnúť tabuľky okolo subjektov a nie okolo používateľov.


1 pre odpoveď č. 2

Mať jednu tabuľku so stĺpcom na identifikáciuužívateľ je správny vzťahový dizajn. Ak pridávate používateľa, pridanie tabuliek znie veľmi smiešne a po veľkom počte používateľov môže spôsobiť problémy.

Keď sa jedna tabuľka stane príliš veľkou, najviacdatabázové produkty podporujú takzvané rozdelenie, ktoré umožňuje rozdeliť jednu logickú tabuľku do viacerých fyzických tabuliek na disku, na základe niektorých kritérií (napr. aby ste zostali s vaším príkladom, mohli by ste mať tri fyzické tabuľky s údajmi pre používateľské ID 1 - 99999 v časti 1) , 100000 - 199999 v oddiele 2 a 200000 - 299999 v oddiele 3).

Tu je prehľad pre veštec.