Niedawno zacząłem rozwijać moją pierwszą poważną aplikację, która używa bazy danych SQL, i używam phpMyAdmin do konfiguracji tabel. Istnieje kilka opcjonalnych "funkcje" Mogę dać różne kolumny, a ja nie jestem do końca pewien, co robią:SQL: co dokładnie robią klucze podstawowe i indeksy?
- Primary Key
- Index
wiem, co jest dla PK i jak z niego korzystać, ale myślę, że moje pytanie w odniesieniu do tego, dlaczego jeden jest potrzebny - w jaki sposób różni się od zwykłego ustawienia kolumny "Unique", inne niż fakt, że można mieć tylko jeden PK? Czy programista wie, że ta wartość jednoznacznie identyfikuje rekord? Czy też ma jakieś specjalne właściwości?
Nie mam pojęcia, co robi "Indeks" - w rzeczywistości jedyne, jakie kiedykolwiek widziałem, to: (1) moje klucze podstawowe wydają się być indeksowane i (2) słyszałem, że indeksowanie jest w jakiś sposób związane z wydajnością; że chcesz indeksować kolumny, ale nie za dużo. W jaki sposób można zdecydować, które kolumny mają być indeksowane i co dokładnie to robi?
edytuj: powinien jeden indeks colums, który prawdopodobnie będzie chciał zamówić?
Dzięki dużo,
Mala
dziękuję, byłeś bardzo pomocny! Zastanawiam się jednak, czy ustawienie kolumny jako PK różni się od ustawiania kolumny jako unikalnej liczby całkowitej, która automatycznie się powiększa? Czy robi coś jeszcze pod maską? – Mala
Edytowałem, aby odpowiedzieć na Twoje pytanie dotyczące wad indeksów. Klucze podstawowe również działają jako indeksy, więc jeśli masz PK w kolumnie, wszystkie zapytania SELECT lub ORDER BY na podstawie tego identyfikatora będą szybsze. Zapewniamy również, że każdy "identyfikator" jest unikalny, dlatego nie będziesz mieć duplikatów identyfikatorów takich jak Ty, jeśli masz właśnie aktualizowaną kolumnę INT. –
Klucz podstawowy nie musi być wartością numeryczną ani pojedynczym polem. a kolumna IDENTYFIKACJA lepiej pasowałaby do tego opisu. Zamiast tego klucz podstawowy służy do informowania RDBMS, że określone pola mogą jednoznacznie identyfikować pojedynczy wiersz w tabeli. Zasadniczo UNIKALNY INDEKS. Jest to normalne (ale nie wymagane), aby Klucze Główne były również czynnikiem kontrolującym przechowywanie danych o kolejności (klucz podstawowy kluczem w SQLServer), a więc znacznie poprawiają czas potrzebny na znalezienie wierszy danych (do odczytu, zapisu, cokolwiek) – MatBailie