Forum » Izdelava spletišč » Indexi pri MySQL - pomoč!
Indexi pri MySQL - pomoč!
barelyLegal ::
npr. da imam tabelo artikel
pa imam polja
id - primary
zap
naziv
zaloga
pa recimo da imam 100.000 zapisov in bi si rad select olajšal, pa dam na zap index (to govorim zgolj za primer, ne se spuščat v podrobnosti te poteze)
in naredim poizvedbo:
select naziv where zap = 15
ker je na zap index, ne preleti 100.000 zapisov ampak samo tiste ki imajo zap 15.
potem pa naredim:
select naziv where zap = 15 order by zaloga
pa se zadeve spt upočasnijo, ker gre zarad order by čez vse.
ampak sem našel en tutorial kak urediti tudi order by in sicer:
add index zap (zap, zaloga)
in ko nardim select naziv where zap = 15 order by zaloga, ne gre skos celo tabelo, da naredi order by.
Vse super, ampak potem sem pa probal:
select naziv where zaloga = 17
in je šlo zopet čez vseh 100.000 zapisov. zakaj? mar nisem z
add index zap (zap, zaloga)
postavil index na zalogo? oz. očitno seveda ne, kaj pa sem potem naredil s tem stavkom:
add index zap (zap, zaloga)
?
hvala za odgovore, še posebej hvaležen bi bil za kakšen link, kjer kaže razlago, kje je razlika med na primer:
add index zap (zap, zaloga)
in
add index (zap)
logika mi pravi, da je zap (zap, zaloga) pač sestavljen index, ampak kaj v tem primeru tudi nebi indexiralo zaloge? za prosto uporabo?
pa imam polja
id - primary
zap
naziv
zaloga
pa recimo da imam 100.000 zapisov in bi si rad select olajšal, pa dam na zap index (to govorim zgolj za primer, ne se spuščat v podrobnosti te poteze)
in naredim poizvedbo:
select naziv where zap = 15
ker je na zap index, ne preleti 100.000 zapisov ampak samo tiste ki imajo zap 15.
potem pa naredim:
select naziv where zap = 15 order by zaloga
pa se zadeve spt upočasnijo, ker gre zarad order by čez vse.
ampak sem našel en tutorial kak urediti tudi order by in sicer:
add index zap (zap, zaloga)
in ko nardim select naziv where zap = 15 order by zaloga, ne gre skos celo tabelo, da naredi order by.
Vse super, ampak potem sem pa probal:
select naziv where zaloga = 17
in je šlo zopet čez vseh 100.000 zapisov. zakaj? mar nisem z
add index zap (zap, zaloga)
postavil index na zalogo? oz. očitno seveda ne, kaj pa sem potem naredil s tem stavkom:
add index zap (zap, zaloga)
?
hvala za odgovore, še posebej hvaležen bi bil za kakšen link, kjer kaže razlago, kje je razlika med na primer:
add index zap (zap, zaloga)
in
add index (zap)
logika mi pravi, da je zap (zap, zaloga) pač sestavljen index, ampak kaj v tem primeru tudi nebi indexiralo zaloge? za prosto uporabo?
Error
trnvpeti ::
en index HKRATI, zap in zaloga
ce hoces iskati po indexu zaloga, moras se dodaten index zaloga kreirat
ce hoces iskati po indexu zaloga, moras se dodaten index zaloga kreirat
barelyLegal ::
hja to sem nekako tak sam pogruntal, ampak kdaj je smiselno uporabit hkrati takole? A samo za order? Ali so še kakšni drugi primeri?
Error
trnvpeti ::
explain plain se vedno dela
na testni bazi tudi vklopi,da ti izpisuje vse sql-e, kateri rabijo vec kot 1sekundo
vec polj v indexu se uporablja pri veliki bazi, in da pocnes poizvedbo po vecih poljih, pa se pravilni vrstni red moras imeti
vec polj v indexu ti tudi zelo poveca velikost indexa
na testni bazi tudi vklopi,da ti izpisuje vse sql-e, kateri rabijo vec kot 1sekundo
vec polj v indexu se uporablja pri veliki bazi, in da pocnes poizvedbo po vecih poljih, pa se pravilni vrstni red moras imeti
vec polj v indexu ti tudi zelo poveca velikost indexa
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [SQL] FiltriranjeOddelek: Programiranje | 906 (661) | korenje3 |
» | vb mysql dataset updateOddelek: Programiranje | 1245 (1125) | korenje3 |
» | [sql] problemOddelek: Programiranje | 727 (609) | tx-z |
» | problem poizvedbe accessOddelek: Programiranje | 1008 (887) | imagodei |
» | [sql]-stevilka vrsticOddelek: Programiranje | 1133 (996) | bmandl |