Jak tworzyć indeksy w PostgreSQL

Jak tworzyć indeksy w PostgreSQL

Wskaźniki to wyspecjalizowane tabele wyszukiwania używane przez silniki polowania danych w celu przyspieszenia wyników zapytania. Indeks jest odniesieniem do informacji w tabeli. Na przykład, jeśli nazwy w książce kontaktowej nie są alfabetyczne, musisz zejść w dół każdego wiersza i przeszukać każde imię, zanim dotrzesz do określonego numeru telefonu, którego szukasz. Indeks przyspiesza polecenia Wybierz i gdzie frazy, wykonując wpis danych w poleceń aktualizacji i wstawienia. Niezależnie od tego, czy indeksy są wstawiane lub usunięte, nie ma wpływu na informacje zawarte w tabeli. Indeksy mogą być wyjątkowe w taki sam sposób, w jaki unikalne ograniczenie pomaga uniknąć zapisów repliki w polu lub zestawu pól, dla których istnieje indeks.

Ogólna składnia

Do tworzenia indeksów używana jest następująca ogólna składnia.

>> Utwórz nazwę indeksu indeksu na nazwie_name (nazwa_polutwa);

Aby rozpocząć pracę nad indeksami, otwórz PGADMIN PostgreSQL z paska aplikacji. Znajdziesz opcję „serwerów” wyświetloną poniżej. Kliknij prawym przyciskiem myszy tę opcję i podłącz ją do bazy danych.

Jak widać, baza danych „Test” jest wymieniony w opcji „Bazy danych”. Jeśli nie masz, kliknij prawym przyciskiem myszy „bazy danych,„ przejdź do opcji „Utwórz” i nazwij bazę danych zgodnie z preferencjami.

Rozwiń opcję „Schematy”, a znajdziesz tam wymienioną opcję „Tabele”. Jeśli go nie masz, kliknij prawym przyciskiem myszy, przejdź do „Utwórz” i kliknij opcję „Tabela”, aby utworzyć nową tabelę. Ponieważ już utworzyliśmy tabelę „emp”, możesz ją zobaczyć na liście.

Wypróbuj zapytanie Wybierz w edytorze zapytania, aby pobrać rekordy tabeli „EMP”, jak pokazano poniżej.

>> Wybierz * z publicznego.Zamówienie emp przez „id” ASC;

Poniższe dane będą znajdować się w tabeli „EMP”.

Utwórz indeksy jednopolowe

Rozwiń tabelę „EMP”, aby znaleźć różne kategorie, e.G., Kolumny, ograniczenia, indeksy itp. Kliknij prawym przyciskiem myszy „indeksy”, przejdź do opcji „Utwórz” i kliknij „indeks”, aby utworzyć nowy indeks.

Skonstruuj indeks podanej tabeli „EMP” lub wyświetlacz zdarzenia, używając okna dialogowego indeksu. Tutaj istnieją dwie zakładki: definicja „ogólna” i „.„Na karcie„ Ogólne ”wstaw konkretny tytuł dla nowego indeksu w polu„ Nazwa ”. Wybierz „Tablespace”, pod którym nowy indeks będzie przechowywany za pomocą rozwijanej listy obok „tabesprze tabelowej.„Jak w obszarze„ komentarza ”, zrób komentarze indeksu tutaj. Aby rozpocząć ten proces, przejdź do zakładki „Definicja”.

Tutaj określ „Metodę dostępu”, wybierając typ indeksu. Następnie, aby utworzyć swój indeks jako „unikalny”, wymieniono tam kilka innych opcji. W obszarze „kolumny” dotknij znaku „+” i dodaj nazwy kolumn, które mają być używane do indeksowania. Jak widać, stosujemy indeksowanie tylko do kolumny „telefon”. Aby rozpocząć, wybierz sekcję SQL.

Karta SQL pokazuje polecenie SQL, które zostało utworzone przez Twoje dane wejściowe w całym dialogu indeksu. Kliknij przycisk „Zapisz”, aby utworzyć indeks.

Ponownie przejdź do opcji „Tabele” i przejdź do tabeli „EMP”. Odśwież opcję „indeksy”, a znajdziesz nowo utworzony indeks „index_on_phone” wymieniony w nim.

Teraz wykonamy polecenie Wyjaśnij Wybierz, aby sprawdzić wyniki dla indeksów z klauzulą ​​Where. Spowoduje to następujące dane wyjściowe, które mówi: „SKAN SEQ na EMP.„Możesz się zastanawiać, dlaczego tak się stało, gdy używasz indeksów.

Powód: Planista Postgres może zdecydować, że nie ma indeksu z różnych powodów. Strateg podejmuje najlepsze decyzje przez większość czasu, mimo że powody nie zawsze są jasne. W porządku, jeśli w niektórych zapytaniach używane jest wyszukiwanie indeksu, ale nie w sumie. Wpisy zwrócone z dowolnej tabeli mogą się różnić, w zależności od stałych wartości zwróconych przez zapytanie. Ponieważ tak się dzieje, skanowanie sekwencji jest prawie zawsze szybsze niż skanowanie indeksu, co wskazuje, że być może planista zapytania miał rację, ustalając, że koszt uruchomienia zapytania w ten sposób jest zmniejszony.

Utwórz wiele indeksów kolumnowych

Aby utworzyć indeksy wielu kolumn, otwórz powłokę wiersza poleceń i rozważ następującą tabelę „Student”, aby rozpocząć pracę nad indeksami z wieloma kolumnami.

>> Wybierz * od studenta;

Napisz następujące zapytanie indeksu Utwórz w nim. To zapytanie utworzy indeks o nazwie „New_Index” w kolumnach „Sname” i „Age” tabeli „Student”.

>> Utwórz indeks New_Index na studenta (Sname, Age);

Teraz wymienimy właściwości i atrybuty nowo utworzonego indeksu „new_index” za pomocą polecenia „\ d”. Jak widać na zdjęciu, jest to indeks typu Btree, który został zastosowany do kolumn „Sname” i „Age”.

>> \ d New_Index;

Utwórz unikalny indeks

Aby skonstruować unikalny indeks, załóż następującą tabelę „EMP”.

>> Wybierz * z EMP;

Wykonaj Utwórz unikalną zapytanie indeksu w powłoce, a następnie nazwa indeksu „empind” w kolumnie „Nazwa” tabeli „emp”. W wyjściu widać, że unikalnego indeksu nie można zastosować do kolumny z duplikatem wartości „nazwy”.

>> Utwórz unikalny indeks empind na emp (nazwa);

Pamiętaj, aby zastosować unikalny indeks tylko do kolumn, które nie zawierają żadnych duplikatów. W tabeli „EMP” możesz założyć, że tylko kolumna „id” zawiera unikalne wartości. Zastosujemy do niego unikalny indeks.

>> Utwórz unikalny indeks empind na EMP (ID);

Poniżej znajdują się atrybuty unikalnego indeksu.

>> \ d empid;

Wskaźnik upuszczenia

Instrukcja upuszcza służy do usunięcia indeksu z tabeli.

>> upuszczaj indeks upuszczony;

Wniosek

Podczas gdy indeksy są zaprojektowane w celu poprawy wydajności baz danych, w niektórych przypadkach nie można użyć indeksu. Podczas korzystania z indeksu należy wziąć pod uwagę następujące zasady:

  • Indeksów nie należy odrzucić dla małych tabel.
  • Tabele z dużą dużą skalą aktualizacji/aktualizacji lub operacji dodawania/wstawienia/wstawienia.
  • W przypadku kolumn o znacznym odsetku wartości zerowych, indeksy nie mogą być zrównane-
  • sprzedaż.
  • Należy unikać indeksowania z regularnie manipulowanymi kolumnami.