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

Je opravdu lepší používat normalizované tabulky?

To záleží ... spojování stolů je ze své podstaty pomalejší než mít jeden velký stůl, který je „předem spojený“, tj. denormalizovaný. Denormalizací však vytvoříte duplikaci dat a vaše tabulky budou větší. Normalizace je vnímána jako dobrá věc, protože vytváří databáze, které dokážou odpovědět na „jakékoli“ otázky, pokud je správně provedena, můžete sestavit výběr, abyste se dostali ke svým datům. To není případ některých jiných forem DB, a to jsou nyní (většinou) historické irelevantnosti, normalizovaná/relační DB tuto bitvu vyhrála.

Zpět k vaší otázce, použití denormalizace, aby věci šly rychleji, je dobře přijímaná technika. Obvykle je nejlepší na chvíli spustit DB, abyste věděli, co denormalizovat a co nechat být, a také je běžné ponechat data ve „správné“ normalizované podobě a stáhnout data do sady denormalizovaných sestav. tabulky pravidelně. Pokud je tento proces prováděn jako součást samotného běhu sestavy, pak jsou data také vždy aktuální.

Jako příklad přílišné normalizace jsem v minulosti viděl DB, kde byly dny v týdnu a měsíce v roce vytaženy do samostatných tabulek – samotná data byla normalizována – můžete zajít příliš daleko.



  1. Jak mohu odstranit vycpané bajty NULL pomocí SELECT v MySQL

  2. Jaká je správná výchozí hodnota pro desetinné pole MySQL?

  3. sql dotaz nenačte všechny záznamy, pouze načte poslední záznam

  4. MySQL Long Query Progress Monitoring