MySQL. CREATE INDEX

Instrukcja: CREATE INDEX

Polecenie CREATE INDEX jest zamapowane jako polecenie ALTER TABLE tworzące indeks.

CREATE [UNIQUE | FULLTEXT] INDEX nazwa_indeksu
ON nazwa_tabeli
(nazwa_kolumny[(długość)],…)

Zazwyczaj, wszystkie indeksy dla danej tabeli tworzy się w czasie tworzenia samej tabeli poleceniem CREATE TABLE.
CREATE INDEX pozwala na dodawanie indeksów do już istniejących tabel.

CREATE INDEX nowy_index ON tabela (kolumna1) – Tworzy index jednokolumnowy, oparty o kolumnę o nazwie kolumna1.
CREATE INDEX nowy_index ON tabela (kolumna1,kolumna2,kolumna3,…) – Tworzy index wielokolumnowy, oparty o wszystkie kolumny wymienione w nawiasie. wartości indeksu tworzone są przez łączenie wartości podanych kolumn.

Dla kolumn typu tekstowego: CHAR i VARCHAR, indeksy mogą być tworzone tylko przez wykorzystanie do tego celu części kolumny, używając składni:
CREATE INDEX nazwa_indeksu (nazwa_kolumny[(długość)],…)
W przypadku kolumn typu BLOB i TEXT argument długość jest wymagany.

Przykład:
CREATE INDEX index_miasto ON tabela(miasto(7));
Ponieważ większość nazw miejscowości różni się na pierwszych 7 znakach, indeks taki nie powinien być dużo wolniejszy niż indeks utworzony z całej kolumny miasto. Niemniej jednak trzeba odpowiednio dobrać argument długość, gdyż często zaledwie jeden znak więcej, a może znacznie przyśpieszyć działanie bazy.
Z drugiej strony, stosowanie indeksów opartych na części kolumny powoduje tworzenie mniejszych plików indeksów. A mniejszy plik to mniejsza baza i więcej na dysku. Poza tym zapis mniejszego indeksu może znacząco przyspieszyć wykonywanie operacji INSERT.

Indeksy FULLTEXT mogą indeksować tylko kolumny typu VARCHAR lub TEXT i do tego tylko w tabelach typu MyISAM.

This entry was posted in MySQL and tagged , , , , . Bookmark the permalink.

Leave a Reply