MySQLi - 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ę, jakie kolumny będą używane do wykonywania zapytań SQL i tworzenia jednego lub więcej indeksów na tych kolumnach.
Praktycznie indeksy są również rodzajem tabel, które przechowują klucz podstawowy lub pole indeksu i 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 tabelach posiadających indeksy, gdzie instrukcje SELECT stają się szybkie w tych tabelach. 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_inf przy użyciu NAME_INDEX.
CREATE UNIQUE INDEX NAME_INDEX ON tutorials_inf(name);
Możesz utworzyć prosty indeks w tabeli. Po prostu pomiń słowo kluczowe UNIQUE w zapytaniu, 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 NAME_INDEX ON tutorials_inf (name 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) - Ta instrukcja dodaje KLUCZ PODSTAWOWY, 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ą pojawiać się 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.
Oto przykład dodawania indeksu w istniejącej tabeli.
mysql> ALTER TABLE tutorials_inf ADD INDEX (id);
Możesz usunąć dowolny INDEX, używając klauzuli DROP wraz z poleceniem ALTER. Wypróbuj poniższy przykład, aby usunąć powyższy indeks.
mysql> ALTER TABLE tutorials_inf DROP INDEX (c);
Możesz usunąć dowolny INDEX, używając klauzuli DROP wraz z poleceniem ALTER. Wypróbuj poniższy przykład, aby usunąć powyższy indeks.
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.
Oto przykład 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 tutorials_inf MODIFY id INT NOT NULL;
mysql> ALTER TABLE tutorials_inf ADD PRIMARY KEY (id);
Możesz użyć polecenia ALTER, aby usunąć klucz podstawowy w następujący sposób:
mysql> ALTER TABLE tutorials_inf 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ć polecenia SHOW INDEX, aby wyświetlić listę wszystkich indeksów skojarzonych 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
........