Jak MySQL dodaje indeks do istniejącej tabeli

Jak MySQL dodaje indeks do istniejącej tabeli
Indeks, znany również jako indeksy, odnosi się do struktury danych, która zwiększa prędkości pobierania danych w tabeli MySQL. Jeśli tabela nie ma indeksu, wykonywanie zapytania monituje w MySQL do zeskanowania wszystkich wierszy, dopóki nie znajdzie żądanych informacji. Jeśli tabela ma wiele rekordów, proces ten zajmie dużo czasu, co znacząco wpływa na wydajność bazy danych.

Ten samouczek pokaże, jak utworzyć indeks w tabeli MySQL zarówno dla istniejących, jak i nowych tabel.

Zanim będziemy wykonywać zapytania i utworzyć indeksy, spójrzmy na kilka koncepcji indeksu MySQL.

Rodzaje wskaźników mysql

MySQL obsługuje dwa rodzaje wskaźników:

  1. Indeks pierwotny lub klastrowy
  2. Wskaźnik wtórny

MySQL automatycznie tworzy indeks o nazwie Primary, za każdym razem, gdy tworzymy tabelę z kluczem podstawowym. W zależności od silnika bazy danych, jeśli klucz podstawowy lub unikalny klucz nie jest dostępny w tabeli, MySQL może utworzyć ukryty klawisz na kolumnie z wartościami identyfikatorów.

Podstawowy indeks utworzony przez MySQL jest przechowywany razem z danymi w tej samej tabeli. Inne wskaźniki, które istnieją w tabeli oprócz indeksu podstawowego, są znane jako wskaźniki wtórne.

Jak dodać indeks do istniejącej tabeli

Chociaż MySQL zaleca dodanie indeksu podczas tworzenia tabeli, istnieją pewne przypadki, w których może być konieczne dodanie indeksu do istniejącej tabeli, na przykład w regularnie dostępnej kolumnie.

Aby dodać indeks do istniejącej tabeli, możemy użyć zapytania alter.

Weźmy przykładową bazę danych z tabelami, jak pokazano w zapytaniu poniżej:

Utwórz bazę danych, jeśli nie istnieje mysql_indices;
Użyj mysql_indices;
Utwórz wędrówki tabeli (
ID Int Auto_increment Key podstawowy,
CPT_NAME
Varchar (255) nie null,
statek
Varchar (255) nie null
);
Włóż do wędrówek (CPT_NAME, statek)
Wartości („Carol Freeman”, „USS Cerritos”),
(„Christopher Pike”, „USS Discovery”),
(„Jean-Luc Picard”, „USS Enterprise”),
(„James t. Kirk ', „USS Enterprise”),
(„Jonathan Archer”, „USS Enterprise”);

W powyższym przykładzie MySQL utworzy klawisz indeksu za pomocą kolumny identyfikatora, ponieważ jest on określony jako klucz podstawowy.

Możesz to zweryfikować za pomocą zapytania:

Pokaż indeks z wędrówek;

Aby utworzyć niestandardowy indeks, użyj zapytania alter jako:

Alter Table Trekks Dodaj indeks (nazwa CPT_NA);

W powyższym przykładzie używamy CPT_NAME jako drugiego klucza podstawowego. Aby pokazać indeksy, użyj zapytania:

Jeśli nie zostanie określony, MySQL nieoceni dowolnego indeksu jako B-drzewa. Inne obsługiwane typy indeksu obejmują skrót i pełny tekst.

Typ indeksu będzie zależeć od silnika pamięci dla określonej tabeli.

Aby utworzyć indeks dla kolumny lub listy kolumn, używamy zapytania Utwórz indeks. Na przykład, aby utworzyć indeks dla kolumny „statek: kolumna, możemy zrobić:

Utwórz indeks ship_index na Treks (statek);

Jeśli uruchomimy zapytanie indeksu show na tabeli, powinniśmy zobaczyć indeks o nazwie „ship_index” w kolumnie „statek”.

Jak dodać indeks do nowej tabeli

Zalecanym sposobem jest utworzenie indeksu lub wskaźników podczas tworzenia tabeli. Aby to zrobić, określ kolumny do użycia jako wskaźniki wewnątrz zapytania index ().

Zacznijmy od upuszczenia tabeli wędrówek w poprzednim przykładzie:

Wpadkowe wędrówki;

Następnie odtworzmy tabelę i podajmy indeks podczas tworzenia. Przykładowe zapytanie brzmi:

Utwórz wędrówki tabeli (
ID Int Auto_increment Key podstawowy,
CPT_NAME
Varchar (255) nie null,
statek
Varchar (255) nie null,
Indeks (statek)
);
Włóż do wędrówek (CPT_NAME, statek)
Wartości („Carol Freeman”, „USS Cerritos”),
(„Christopher Pike”, „USS Discovery”),
(„Jean-Luc Picard”, „USS Enterprise”),
(„James t. Kirk ', „USS Enterprise”),
(„Jonathan Archer”, „USS Enterprise”);

W powyższym zapytaniu dodajemy kolumnę statku jako indeks podczas tworzenia tabeli. Ponieważ identyfikator jest kluczem podstawowym, MySQL automatycznie dodaje go jako indeks.

Pokaż indeks z wędrówek;

Wniosek

W tym samouczku nauczyłeś się dodawać indeks do istniejącej tabeli, dodać indeks kolumny i utworzyć indeks podczas tworzenia tabeli.