Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak kosztowne są JOIN w SQL? I/lub jaki jest kompromis między wydajnością a normalizacją?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Równoważna klauzula zwracająca Mysql

  2. co to jest java.io.EOFException, Komunikat:Nie można odczytać odpowiedzi z serwera. Oczekiwany odczyt 4 bajtów, odczyt 0 bajtów

  3. Kiedy używać MongoDB lub innych systemów baz danych zorientowanych na dokumenty?

  4. Nowicjusz Java potrzebuje pomocy w połączeniu z bazą danych

  5. MySQL:Nieprawidłowe dane GIS dostarczone do funkcji st_geometryfromtext