indeksy w MySQL

0

ciekawi mnie jedna sprawa, tworzac indexy w mysql mozna indexowac jeda lub wiele kolum jako jedne index i czy jest jakas roznica jesli w sklad indexu wchodza powiedzmy 2 kolumny albo zrobic 2 indexy z pojedynczymi kolumnami?

nie moge nigdzie znalezc informacji na ten temat :| jesli kots moze mi to wytlumaczyc abo dac jakies materialy to bede wdzieczny :)

0

mogę się mylić, ale mam wrażęnie, że w każdej tabeli może byc maksymalnie tylko jeden indeks (klucz podstawowy). taka jest zasada relacyjnych baz danych.

0

klucz glowny zazwyczaj jest jeden ale przy kluczy tez mozna zrobic polaczeni np. 2 kolum a co do indexu to indexowac mozesz prawie wszystko nawet wartosci TEXT (coprawda nie calych warosci) a indexowac powinno sie to do czego najczescie sie odwoluje w warunku po WHERE tym sposobem przyspiesza sie wyszukiwanie i dzialnie bazy ale nie chodzi mi w tym poscie o optymailzacje ale o cos inneog :) wiec nie bede sie rozpisywal za mocno :)

0

Kinool: jest roznica. Np. masz 2 kolumny: x i y i chcesz wyszukac i po jednym i po drugim np tak:

... WHERE x=30 AND y < 50;

Jesli dasz 2 indeksy oddzielnie na kolumny x i y, to SZBD uzyje tylko jednego z nich (ktorego, to juz wyjdzie mu z analizy kosztow, w tym zapytaniu na 99% uzyje tego na x). Natomiast jesli bedzie mial indeks na 2 kolumnach (x,y), to go uzyje do obu kolumn i w efekcie bedzie DUZO szybciej. Tylko ze z drugiej strony jesli zrobisz wyszukiwanie po SAMYM y, to taki indeks nie bedzie uzyty, wtedy musisz dodatkowo utworzyc indeks na kolumnie (y).

Acha, jeszzce jedna istotna rzecz: update indeksow wielokolumnowych dziala wolniej niz jednokolumowych.

0

dzieki :) tak wlasnie myslalem ale nie bylem pewny.

tworzenie "zlozonych" indeksow trzeba wiec dobrze rozwarzyc czy bedzie sie to oplacalo :) bo indexujac wszystko to niezbyt dobry pomysl :) wiec trzeba dokladnie przeanalizowac zapytania i dostosowac do nich indexy no i pomiary pomiary i jeszcze raz pomiary :)

pozdrawiam
Kinool

0

Pomiary sa pomocne, ale jeszcze lepiej uzyc EXPLAIN zeby wyswietlic plan wykonania. Wtedy widac jakich indeksow i algorytmow uzywa. Indeksy warto tez stosowac rowniez wszedzie tam, gdzie sa operacje zlaczenia dwoch lub wiecej tabel (wtedy warto zalozyc indeks na kolumny po ktorych nast. zlaczenie).

1 użytkowników online, w tym zalogowanych: 0, gości: 1