Hej! Zastanawia mnie pewien problem. Co jest wydajniejsze dla bazy: PK stworzony z kilku kolumn (np 2) czy dodanie jakiegoś identyfikatora żeby PK było jedną kolumną (np int, uuid)?
Wydajniejsze czyli np insertując, updateując czy cokolwiek. Bazie prościej jest wyszukać takowy wiersz jeśli mamy PK złożony czy pojedynczy? Pomijam tutaj oczywiście kwestię rozmiaru tabelki bo wiadomo dodatkowa kolumna == więcej zajmuje miejsca na dysku. Zarówno z indexowaniem jak i bez - ale podejrzewam że i tak w jednym jak i w drugim przypadku to samo będzie bardziej wydajne. Nigdzie nie mogłem znaleźć odpowiedzi w guglach. Dzięki i szczęśliwego nowego roku!
Wydajność PK - złożone czy identyfikatory
- Rejestracja: dni
- Ostatnio: dni
- Postów: 231
- Rejestracja: dni
- Ostatnio: dni
- Postów: 231
Czyli jeśli nie zależy nam na tym ile będzie zajmować baza, a na wydajności to wszędzie tworzymy kolumnę z identyfikatorami by PK składał się z jednej kolumny?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6610
id ma tę przewagę nad PK złożonym z trzech kolumn, że przy pisaniu where id = 1 podajesz jedną kolumnę a nie trzy.
A teraz idę spać
- Rejestracja: dni
- Ostatnio: dni
- Postów: 231
to po co się robi klucze złożone skoro traci się na nich wydajność?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6610
a ile widziałeś złożonych PK w realnie działających systemach a nie na wykładzie na studiach?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 152
@abrakadaber jest duzo wiecej argumentow niz tylko where=, zwiazanych z wydajnoscia.Ciezko mi znalezc argument przemawiajacy za kluczami zlozonymi, naturalnymi.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 231
Dzięki za podzielenie się doświadczeniem i wiedzą :)
- Rejestracja: dni
- Ostatnio: dni
Hmm klucz kompozytowy wiele razy widziałem jako wymuszeniu unikalności w tabeli a co za tym idzie relacjach tabel. Faktycznie jest rzadkością, ale jednak pojawia się.
Natomiast PK bedące identyfikatorem ma duże znaczenie dla wydajności w przeszukiwaniu danych, joinach a także w tworzeniu indeksów nieklsatrowych :)
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6610
do wymuszania unikalności to jest indeks unikalny a ni PK