ďťż
 
Indeksy wielokolumnowe - praktyka? ďťż
 
Indeksy wielokolumnowe - praktyka?
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

Indeksy wielokolumnowe - praktyka?



Leszek Pachura - 26-01-2007 00:03
Indeksy wielokolumnowe - praktyka?
  Czesc,

Wiele baz danych oferuje mozliwosc zakladania wielokolumnowych indeksow, ktore
przyspieszaja zapytania o wszystkie poindeksowane pola na raz. Dodatkowo,
indeks na polach (a-b-c-d) dziala jednoczesnie jak indeksy (a), (a-b) i (a-b-c).

Tyle teoria. A praktyka?

Na przyklad, taki podstawowy problem - przy zalozeniu ze indeks jest
zaimplementowany jako B+drzewo (lub jakas wariacja na ten temat) - jaka powinna
byc optymalna kolejnosc indeksowania kolumn? Zaczac od kolumny w ktorej jest
najwiecej roznych wartosci, czy najmniej (np. plec)? A moze sa jakies inne
reguly?

W helpie do Postgresa natknalem sie na taki tekst: "In most situations, an
index on a single column is sufficient and saves space and time. Indexes with
more than three columns are unlikely to be helpful".

Prawda-to czy falsz? W produkcie z ktorym zaczalem niedawno pracowac (baza to
Oracle 10) indeksy nawet 5-kolumnowe sa uzywane czesto i gesto.

Dzieki!

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl





dap - 26-01-2007 00:03

  Leszek Pachura wrote:
> Czesc,
>
> Wiele baz danych oferuje mozliwosc zakladania wielokolumnowych indeksow, ktore
> przyspieszaja zapytania o wszystkie poindeksowane pola na raz. Dodatkowo,
> indeks na polach (a-b-c-d) dziala jednoczesnie jak indeksy (a), (a-b) i (a-b-c).
>
> Tyle teoria. A praktyka?
>
> Na przyklad, taki podstawowy problem - przy zalozeniu ze indeks jest
> zaimplementowany jako B+drzewo (lub jakas wariacja na ten temat) - jaka powinna
> byc optymalna kolejnosc indeksowania kolumn? Zaczac od kolumny w ktorej jest
> najwiecej roznych wartosci, czy najmniej (np. plec)? A moze sa jakies inne
> reguly?
>
> W helpie do Postgresa natknalem sie na taki tekst: "In most situations, an
> index on a single column is sufficient and saves space and time. Indexes with
> more than three columns are unlikely to be helpful".
>
> Prawda-to czy falsz? W produkcie z ktorym zaczalem niedawno pracowac (baza to
> Oracle 10) indeksy nawet 5-kolumnowe sa uzywane czesto i gesto.

Jak producent tak zaleca to trzeba tak robic.

Ja w swojej praktyce preferuje bardziej 5 jednokolumnwych indekow niz 1
piecokolumnowy no chyba, ze 5 kolumnowy jest bardziej optymalny.

dap




hubert depesz lubaczewski - 26-01-2007 00:03

  On 2007-01-25, Leszek Pachura <pachuraWYTNIJTO@op.pl> wrote:
> byc optymalna kolejnosc indeksowania kolumn? Zaczac od kolumny w ktorej jest
> najwiecej roznych wartosci, czy najmniej (np. plec)? A moze sa jakies inne
> reguly?

ja bym zaczął od tej co ma najwięcej różnych.

> W helpie do Postgresa natknalem sie na taki tekst: "In most situations, an
> index on a single column is sufficient and saves space and time. Indexes with
> more than three columns are unlikely to be helpful".

to bardzo ogólne zdanie. nie traktuj tego jako wyroczni.

> Prawda-to czy falsz?

ekhem. w bazach nie ma "prawda i fałsz". wszystko zależy od
okoliczności.
każda, nawet najbardziej podstawową regułę można złamać jeśli taka jest
faktyczna potrzeba.
indeksy > 3 pola - *zazwyczaj* nieprzydatne.
ale czasem - jedyne sensowne.

depesz

--
http://www.depesz.com/ - blog dla ciebie




Lucyna Witkowska - 27-01-2007 00:02

  Leszek Pachura <pachuraWYTNIJTO@op.pl> napisał:
> Wiele baz danych oferuje mozliwosc zakladania wielokolumnowych indeksow, ktore
> przyspieszaja zapytania o wszystkie poindeksowane pola na raz. Dodatkowo,
> indeks na polach (a-b-c-d) dziala jednoczesnie jak indeksy (a), (a-b) i (a-b-c).

> Tyle teoria. A praktyka?

> Na przyklad, taki podstawowy problem - przy zalozeniu ze indeks jest
> zaimplementowany jako B+drzewo (lub jakas wariacja na ten temat) - jaka powinna
> byc optymalna kolejnosc indeksowania kolumn? Zaczac od kolumny w ktorej jest
> najwiecej roznych wartosci, czy najmniej (np. plec)? A moze sa jakies inne
> reguly?

Wybor odpowiedniego indeksu powinien zalezec od zapytan jakie beda
wykonywane. Jesli bedzie wykonywane SELECT * FROM tab WHERE a=..
i SELECT * FROM tab WHERE a=.. AND b=.. to sensowne jest utworzenie
indeksu (a,b).
Jesli wykonywane beda tylko zapytania a= i b= to kolejnosc kolumn nie ma
znaczenia (Oracle).

> W helpie do Postgresa natknalem sie na taki tekst: "In most situations, an
> index on a single column is sufficient and saves space and time. Indexes with
> more than three columns are unlikely to be helpful".
> Prawda-to czy falsz?

To jest prawda statystyczna ;-)

> W produkcie z ktorym zaczalem niedawno pracowac (baza to
> Oracle 10) indeksy nawet 5-kolumnowe sa uzywane czesto i gesto.

Jesli zapytania uzywaja wszystkich 5 kolumn - czemu nie?
Pozdrowienia,
LW





Marek Horodyski - 27-01-2007 00:02

 
Użytkownik "hubert depesz lubaczewski" <depesz@depesz.com> napisał w
wiadomości news:gahn84-e0c.ln1@xxx.home.depesz.com...
> On 2007-01-25, Leszek Pachura <pachuraWYTNIJTO@op.pl> wrote:
>> byc optymalna kolejnosc indeksowania kolumn? Zaczac od kolumny w ktorej
>> jest
>> najwiecej roznych wartosci, czy najmniej (np. plec)? A moze sa jakies
>> inne
>> reguly?
>
> ja bym zaczął od tej co ma najwięcej różnych.
>
>> W helpie do Postgresa natknalem sie na taki tekst: "In most situations,
>> an
>> index on a single column is sufficient and saves space and time. Indexes
>> with
>> more than three columns are unlikely to be helpful".
>
> to bardzo ogólne zdanie. nie traktuj tego jako wyroczni.
>
>> Prawda-to czy falsz?
>
> ekhem. w bazach nie ma "prawda i fałsz". wszystko zależy od
> okoliczności.
> każda, nawet najbardziej podstawową regułę można złamać jeśli taka jest
> faktyczna potrzeba.
> indeksy > 3 pola - *zazwyczaj* nieprzydatne.
> ale czasem - jedyne sensowne.

Akurat w Oraclu mialem indeks na 4 kolumnach
(kiedy+na_jakim_nosniku+kto+co), wykorzystywany do spradzenia unikalnosci na
tych wlasnie kolumnach. Zmienily sie zalozenia, i w obliczeniach mialem
podac na warunkach jakiego miesiaca mam wynik - czyli cos jak data waluty
obok daty transakcji. No i musialem dodac :
kiedy+na_jakim_nosniku+kto+co+na_kiedy. Tak ze widac iz takie potrzeby po
prostu sie zdarzaja.

Pozdrawiam,
Marek Horodyski
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?= [pgsql] 7.4 =?ISO-8859-2?Q?og=B3upia=B3_przy_zak=B3adaniu_?==?ISO-8859-2?Q?indeksu?= =?ISO-8859-2?Q?=5BORACLE=2C_ORDER_BY=5D_Czy_indeksowane_?==?I SO-8859-2?Q?kolumny_przy=B6piesz=B1_sortowanie=3F?= =?ISO-8859-2?Q?Re=3A_Informatyka=2C_Java=2C_EJB=2C_Ajax=2C?== ?ISO-8859-2?Q?_Spring=2E_Czy=BFby_to_koniec_=B6wiata=2C_czy? ==?ISO-8859-2?Q?_te=BF_nasze_uczelnie_b=EAd=B1_uczy=B3y_w_k?== ?ISO-8859-2?Q?o=F1cu!_czego_praktyczne?= [postgresql] szukanie po indeksie tsearch'owym wlecze sie - da siejakos przyspieszyc? [MSSQL 2000] procedura kopiująca rekordy i indeks UNIQUE [MySQL] Indeksy =?iso-8859-2?Q?pe=B3notekstowe?= a kodowanie indeks w =?iso-8859-2?Q?po=B3=B1czeniu?= z lower() indeksacja bazy płatnika via osql / składnia [PGSQL] Sortowanie wg indeksu innej tabeli
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • quentinho.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com