Nejlepším postupem je vždy začněte s 3NF a poté uvažujte o denormalizaci pouze v případě, že zjistíte konkrétní problém s výkonem.
Výkon je pouze jeden problémů, se kterými se musíte potýkat s databázemi. Duplikováním dat riskujete, že umožníte, aby ve vaší databázi byla nekonzistentní data, a tím zrušíte jeden ze základních principů relačních databází, konzistenci (C
v ACID
).
Ano, připojení něco stojí, to se nedá obejít. Náklady jsou však obvykle mnohem nižší, než byste si mysleli, a mohou být často zaplaveny jinými faktory, jako je doba přenosu v síti. Zajištěním správného indexování příslušných sloupců se můžete vyhnout mnoha těmto nákladům.
A nezapomeňte na optimalizační mantru:měřte, nehádejte! A měřit v prostředí podobném výrobě. A zachovat pravidelné měření (a ladění) – optimalizace je pouze operace nastavení a zapomnění, pokud se vaše schéma a data nikdy nezmění (velmi nepravděpodobné).
Návrat k výkonu lze obvykle zajistit bezpečným použitím spouštěčů k udržení konzistence. To samozřejmě zpomalí vaše aktualizace, ale vaše vybrané položky mohou stále běžet rychleji.