Forum » Programiranje » [PostgreSQL] B-indeksi
[PostgreSQL] B-indeksi
Sergio ::
Ce je tukaj kaksen zealot za PostgreSQL, ki bi mi znal odgovoriti na tole vprasanje:
Zelim izvesti stavek takega tipa:
SELECT a from table where field = 0;
Nad polje "field" sem dal b-index. Ko pozenem explain analyze, mi planner naredi dva koraka, najprej index scan (00 - 26.20), ter nato še bitmap heap scan (26.20 - 8100).
Če query zamenjam z ekvivalentnim
SELECT a from table where field <= 0 AND field >= 0;
dobim plan s samo enim korakom, ki vključuje samo index scan (0.00-5)
Poskusil sem tudi zamenjati b-index z hash indeksom, ampak razlike ni bilo. PostgreSQL ocitno tudi odsvetuje uporabo hash indeksov.
Se ta "hek" dejansko izplaca? Je ze kdo imel izkusnje s tem? Ali slucajno delam kaj popolnoma narobe? Hvala.
Zelim izvesti stavek takega tipa:
SELECT a from table where field = 0;
Nad polje "field" sem dal b-index. Ko pozenem explain analyze, mi planner naredi dva koraka, najprej index scan (00 - 26.20), ter nato še bitmap heap scan (26.20 - 8100).
Če query zamenjam z ekvivalentnim
SELECT a from table where field <= 0 AND field >= 0;
dobim plan s samo enim korakom, ki vključuje samo index scan (0.00-5)
Poskusil sem tudi zamenjati b-index z hash indeksom, ampak razlike ni bilo. PostgreSQL ocitno tudi odsvetuje uporabo hash indeksov.
Se ta "hek" dejansko izplaca? Je ze kdo imel izkusnje s tem? Ali slucajno delam kaj popolnoma narobe? Hvala.
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.
če usoda ustavi mu korak,
on se ji zoperstavi.
Sergio ::
Nobenega ultra hekerja ki bi mi znal razloziti stvari? :)
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.
če usoda ustavi mu korak,
on se ji zoperstavi.
Sergio ::
Očitno se bo treba obrniti na mejlin listo.
Hvala vseeno!
Hvala vseeno!
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.
če usoda ustavi mu korak,
on se ji zoperstavi.
darkolord ::
Če je query dovolj selektiven (majhno število vrstic), preklopi v simple scan (najprej prebere vse vrstice v vrstnem redu, kot so indexirane in jih potem posortira), kar je sicer bolj počasno za večje število vrstic. V tvojem primeru je edino čudno, da je uporabil različna načina, čeprav query vrne enake vrstice (sej ti explain pokaže enako število vrstic?). A se časa pri explain in analyze ujemata?
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | SQL inner joinOddelek: Programiranje | 3311 (2566) | smacker |
» | Nova različica podatkovne baze PostgreSQL 9.5 prinaša obilico novosti (strani: 1 2 )Oddelek: Novice / Ostala programska oprema | 17678 (14544) | McAjvar |
» | python in postgresql (strani: 1 2 )Oddelek: Programiranje | 7503 (6404) | ZaphodBB |
» | Large databaseOddelek: Programiranje | 1430 (1128) | krho |
» | postgreSql/Mysql - počasen countOddelek: Programiranje | 1242 (1163) | yimi |