MySQL - INDEKSY
Indeks bazy danych to struktura danych, która poprawia szybkość operacji w tabeli. Indeksy można tworzyć przy użyciu jednej lub więcej kolumn, co stanowi podstawę zarówno do szybkiego losowego wyszukiwania, jak i efektywnego porządkowania dostępu do rekordów.
Podczas tworzenia indeksu należy wziąć pod uwagę, które kolumny posłużą do tworzenia zapytań SQL i utworzenia jednego lub więcej indeksów na tych kolumnach.
W praktyce indeksy są również rodzajem tabel, które przechowują klucz podstawowy lub pole indeksu oraz wskaźnik do każdego rekordu w rzeczywistej tabeli.
Użytkownicy nie widzą indeksów, służą one jedynie do przyspieszania zapytań i będą wykorzystywane przez wyszukiwarkę bazy danych do bardzo szybkiego lokalizowania rekordów.
Instrukcje INSERT i UPDATE zajmują więcej czasu w przypadku tabel z indeksami, podczas gdy instrukcje SELECT w tych tabelach stają się szybkie. Powodem jest to, że podczas wstawiania lub aktualizacji baza danych musi również wstawiać lub aktualizować wartości indeksu.
Prosty i niepowtarzalny indeks
Możesz utworzyć unikalny indeks w tabeli. Unikalny indeks oznacza, że dwa wiersze nie mogą mieć tej samej wartości indeksu. Oto składnia tworzenia indeksu w tabeli.
CREATE UNIQUE INDEX index_name ON table_name ( column1, column2,...);
Do utworzenia indeksu można użyć jednej lub kilku kolumn.
Na przykład możemy utworzyć indeks na tutorials_tbl za pomocą tutorial_author.
CREATE UNIQUE INDEX AUTHOR_INDEX ON tutorials_tbl (tutorial_author)
Możesz utworzyć prosty indeks w tabeli. Po prostu pomińUNIQUEsłowo kluczowe z zapytania, aby utworzyć prosty indeks. Prosty indeks umożliwia zduplikowane wartości w tabeli.
Jeśli chcesz indeksować wartości w kolumnie w porządku malejącym, możesz dodać zarezerwowane słowo DESC po nazwie kolumny.
mysql> CREATE UNIQUE INDEX AUTHOR_INDEX ON tutorials_tbl (tutorial_author DESC)
ALTER polecenie, aby dodać i upuścić INDEKS
Istnieją cztery typy instrukcji dodawania indeksów do tabeli -
ALTER TABLE tbl_name ADD PRIMARY KEY (column_list) - To stwierdzenie dodaje PRIMARY KEY, co oznacza, że indeksowane wartości muszą być unikalne i nie mogą mieć wartości NULL.
ALTER TABLE tbl_name ADD UNIQUE index_name (column_list) - Ta instrukcja tworzy indeks, dla którego wartości muszą być unikalne (z wyjątkiem wartości NULL, które mogą występować wielokrotnie).
ALTER TABLE tbl_name ADD INDEX index_name (column_list) - To dodaje zwykły indeks, w którym dowolna wartość może pojawić się więcej niż raz.
ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list) - Tworzy specjalny indeks FULLTEXT, który jest używany do wyszukiwania tekstu.
Poniższy blok kodu jest przykładem dodawania indeksu w istniejącej tabeli.
mysql> ALTER TABLE testalter_tbl ADD INDEX (c);
Możesz usunąć dowolny INDEKS, używając rozszerzenia DROP klauzula wraz z poleceniem ALTER.
Wypróbuj poniższy przykład, aby usunąć powyższy indeks.
mysql> ALTER TABLE testalter_tbl DROP INDEX (c);
Możesz usunąć dowolny INDEX, używając klauzuli DROP wraz z poleceniem ALTER.
ALTER Polecenie, aby dodać i upuścić KLUCZ PODSTAWOWY
Możesz również dodać klucz podstawowy w ten sam sposób. Ale upewnij się, że klucz podstawowy działa na kolumnach, które NIE mają wartości NULL.
Poniższy blok kodu jest przykładem dodawania klucza podstawowego w istniejącej tabeli. Spowoduje to, że najpierw kolumna NIE będzie NULL, a następnie dodamy ją jako klucz podstawowy.
mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;
mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);
Możesz użyć polecenia ALTER, aby upuścić klucz podstawowy w następujący sposób -
mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;
Aby usunąć indeks, który nie jest KLUCZEM PODSTAWOWYM, należy określić nazwę indeksu.
Wyświetlanie informacji INDEKSU
Możesz użyć SHOW INDEXpolecenie, aby wyświetlić wszystkie indeksy powiązane z tabelą. Wyjście w formacie pionowym (określone przez \ G) często jest przydatne w przypadku tej instrukcji, aby uniknąć zawijania długich linii -
Wypróbuj następujący przykład -
mysql> SHOW INDEX FROM table_name\G
........