Najlepszą praktyką jest zawsze zacznij od 3NF, a następnie rozważ denormalizację tylko wtedy, gdy znajdziesz konkretny problem z wydajnością.
Wydajność to tylko jeden problemów, z którymi masz do czynienia z bazami danych. Duplikując dane, ryzykujesz dopuszczenie niespójnych danych do Twojej bazy danych, niwecząc w ten sposób jedną z podstawowych zasad relacyjnych baz danych, spójność (C
w ACID
).
Tak, sprzężenia mają swój koszt, nie da się tego obejść. Jednak koszt jest zwykle znacznie niższy, niż mogłoby się wydawać, i często może być zdominowany przez inne czynniki, takie jak czas transmisji w sieci. Upewniając się, że odpowiednie kolumny są prawidłowo indeksowane, możesz uniknąć wielu z tych kosztów.
I pamiętaj o mantrze optymalizacji:zmierz, nie zgaduj! I mierz w środowisku produkcyjnym. I zachowaj pomiar (i dostrajanie) okresowo - optymalizacja jest operacją „ustaw i zapomnij”, jeśli Twój schemat i dane nigdy się nie zmienią (bardzo mało prawdopodobne).
Wycofanie dla wydajności może być zwykle bezpieczne przy użyciu wyzwalaczy w celu zachowania spójności. To oczywiście spowolni twoje aktualizacje, ale nadal może sprawić, że twoje wybory będą działać szybciej.