SQLite pokazują indeksy

SQLite pokazują indeksy
„Indeks to rodzaj struktury danych, który integruje i optymalizuje wartości kolumny (lub kolumn) do wyszukiwania. Indeksy (lub indeksy) są unikalne dla wyszukiwania bazy danych, ponieważ pozwalają na zlokalizowanie niektórych wierszy w tabeli bez skanowania całej tabeli. W rezultacie indeksy mogą znacznie poprawić wydajność niektórych zapytań. Indeksy są zawsze powiązane z pojedynczą tabelą; Mogą jednak zawierać wiele kolumn z tabeli.Zwykle indeksy pozwalają na zduplikowane wartości; Jednak unikalne słowo kluczowe zapobiega wstawieniu lub aktualizacji duplikat. Ponieważ NULL nie jest uważany za wartość, unikalny indeks nie powstrzyma pojawienia się jednego lub więcej zerowych. Nie należy określić w początkowej definicji tabeli, aby zapobiec nulls.

Po upuszczeniu indeksu jest on usunięty z bazy danych, ale nie ma to wpływu tabela, z którą jest powiązany.

Z przykładem dowiemy się, jakie indeksy są w SQLite, jak ustawić indeksy na pojedynczej lub wielu kolumnach w SQLite oraz jak usunąć lub upuścić indeksy SQLITE; Następnie omówimy, jak je pokazać w SQLite."

Składnia indeksów SQLITE

Utwórz [unikalne] indeks [jeśli nie istnieje] index_name na nazwa_beli (kolumny… n);

Instrukcja Utwórz indeks jest używany w powyższej składni do zbudowania nowego indeksu; Podana nazwa indeksu odnosi się do określonej nazwy indeksu, którą musimy wygenerować. Słowa kluczowe i indeks to słowa kluczowe, a określona tabela odnosi się do istniejącej tabeli o nazwie kolumny.

Jeśli mamy więcej niż jedno pole i że dane należy zdefiniować wyjątkowo, abyśmy mogli użyć unikalnego słowa kluczowego, możemy użyć unikalnego słowa kluczowego; Unikalna klauzula jest opcjonalnym elementem tej składni.

Kluczowe punkty indeksu SQLite

  • Wykorzystanie indeksu przyspiesza, wybierz wyszukiwania i gdzie klauzule; Jednak spowalnia dane wejściowe danych w aktualizacji i wkładania operacji. Nie ma wpływu na dane, gdy indeksy są tworzone lub wyeliminowane.
  • Indeks jest tworzony z instrukcją Utwórz indeks. Umożliwia wymienienie indeksu, podanie tabeli i który indeks kolumny lub kolumn oraz zdefiniowanie, czy indeks powinien być w kolejności rosnącej czy malejącej.
  • Indeksy są również unikalne, w taki sam sposób, w jaki unikalne ograniczenie zabrania duplikatów rekordów w kolumnie lub kolekcji kolumn, na których tworzy się indeks.

Jak działają indeksy w SQLite

Określona tabela musi być podłączona z każdym indeksem. Indeks może zawierać jeden lub jeszcze więcej pól, ale wszystkie muszą znajdować się w tej samej tabeli. Kilka indeksów można znaleźć w tabeli.

SQLITE zapewnia strukturę B-Tree do przechowywania danych indeksu za każdym razem, gdy dodasz indeks. Indeksy w SQLite są zorganizowane za pomocą metody B-Tree. B-drzewo jest raczej drzewem zrównoważonym niż binarnym, ponieważ B oznacza zrównoważone.

Indeks zawiera wartości z kolumn, które zdefiniowaliśmy w indeksie, a także wartość Row_id dla każdej z tych kolumn. SQLITE może teraz szybko zlokalizować wiersz za pomocą wpisów indeksowanych pól.

Wyobraź sobie indeks bazy danych podobny do indeksu książek. Możemy szybko zlokalizować kilka stron na podstawie słów kluczowych, przeszukując indeks.

Kiedy nie powinny być używane indeksów?

Chociaż indeksy mają na celu poprawę wydajności bazy danych, są sytuacje, w których należy je pominąć. Kiedy należy użyć indeksu? Następujące czynniki mogą pomóc w podjęciu decyzji.

Nie zaleca się korzystania z indeksów w:

  • Stoły z małym śladem
  • Tabele, które są często aktualizowane lub wkładane w ogromne partie.
  • Kolumny zerowe.
  • Często modyfikowane kolumny.

Przykład 1

Najpierw musimy zbudować tabelę, aby zobaczyć jej indeksy. Pokazaliśmy poniższą tabelę, którą utworzyliśmy za pomocą polecenia Utwórz w SQLite, a także zdefiniowane pola tej tabeli.

Utwórz tabela Story_books (
Klucz podstawowy Book_ID int ,
Book_name Char (10) ,
book_price flaot
);

Teraz utworzyliśmy indeks jednej kolumny. Indeks jednopolumnowy jest zbudowany wokół jednej kolumny bazy danych. Możemy przekazać wiele kolumn na raz, aby utworzyć indeksy określonej tabeli. W następującym zapytaniu podaliśmy jedną nazwę nazwy pola z tabeli Story_books.

# Utwórz indeks idx_story_books_book na Story_Books (nazwa_kokowania);

Za pomocą .Metoda indeksu, indeks utworzony w tabeli można zobaczyć w następujący sposób:

Unikalne indeksy są wykorzystywane zarówno do integralności danych, jak i wydajności. Unikalny indeks zapobiega wprowadzaniu duplikatów wartości do tabeli. Korzystając z następującego zapytania, stworzyliśmy unikalny indeks w kolumnie Book_id Table Table Story_book.

Utwórz unikalne indeks idx_book_id
Na Story_books (book_id);

Wyjście pokazuje, że indeks został pomyślnie utworzony.

Stworzyliśmy selektywny indeks w tabeli Story_book, włączając tylko część rekordów w indeksie. Gdy użyliśmy klauzuli, tylko te rekordy, w których wartość książki nie jest zerowa, otrzymują częściowy indeks. Rekordy o wartości null dla nazwy książki nie będą częścią indeksu.

Utwórz indeks IDX_BOOD_PRICE
On Story_books (Book_Price)
Gdzie book_price nie jest null;

Podczas wykonywania .Polecenie indeksów, pokazuje indeksy w tabeli. Jak widać, ten indeks Book_Price jest uwzględniony.

Przykład 2

Polecenie upuści SQLite służy do usunięcia indeksu. Upuszczanie indeksu należy dokonać ostrożnie, ponieważ może mieć wpływ na funkcjonalność. Tutaj, z poleceniem upuszczonym, mamy klauzulę IF IF. Jeśli wybrany indeks nie istnieje, żaden wyjątek nie zostanie wygenerowany. Używanie klauzuli IF istnieje nie obowiązkowe; Możemy to pominąć i po prostu upuść stół. Upuściliśmy indeksową nazwę_name z tabeli Story_book przez następujące zapytanie.

Upuść indeks, jeśli istnieje IDX_Story_Books_Book_name;

Indeks z kolumnową nazwą_name jest upuszczony, jak pokazano w powładzie.

Przykład 3

Użyliśmy tabeli sqlite_master zamiast używania .Polecenie indeksów. Chociaż ta tabela zawiera więcej niż tylko indeksy, możesz użyć klauzuli gdzie ograniczyć ją tylko do indeksów.

WYBIERAĆ
Nazwa, nazwa tbl_name
…> Z SQLITE_MASTER
…> Gdzie type = „indeks”;

Mamy tabelę, do której odpowiada każdy indeks. Kolumna TBL_NAME śledzi to w następujący sposób.

Wniosek

W tej sekcji przekroczyliśmy podstawy ustanowienia indeksu w SQLite i omawialiśmy, jak pokazać, że indeksy w SQLITe z niektórymi przykładami. Te przykłady są łatwe w użyciu, a także sposoby, które pokazują indeksy w SQLITE. Kiedy czytasz cały artykuł, możesz być bardzo jasny.