Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

efikasniji SELECT?

[es] :: Baze podataka :: efikasniji SELECT?

[ Pregleda: 4977 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

cvele

Član broj: 748
Poruke: 20
*.26.EUnet.yu



Profil

icon efikasniji SELECT?18.08.2001. u 14:06 - pre 247 meseci
Koristim sledeci upit

SELECT * FROM adresar LIMIT n,10

gde mi se n svaki put povecava kada predjem na novu stranu ca next i previous.

Kada je baza velika ovaj upit radi sporo jer svaki put se iznova izvrsava ceo upit bez obzira sto ja izdvajam samo 10 sledecih rezultata.

Dali je ovo moguce efikasniji odraditi?
 
Odgovor na temu

cvele

Član broj: 748
Poruke: 20
*.135.EUnet.yu



Profil

icon Re: efikasniji SELECT?18.08.2001. u 15:06 - pre 247 meseci
I jos nesto...

kako da dobijem ukupan broj redova koji vraca upit ako u njemu koristim LIMIT.

Dali to znaci da moram jos jednom da izvrsim ceo upit bez LIMIT da bih dobio ukupan broj redova?
 
Odgovor na temu

Gojko Vujovic
Amsterdam, NL

Administrator
Član broj: 1
Poruke: 13651



+163 Profil

icon Re: efikasniji SELECT?18.08.2001. u 17:21 - pre 247 meseci
Navedi molim te o kojoj je bazi reč.
 
Odgovor na temu

tOwk
Danilo Šegan
Zemun/Beograd

Član broj: 94
Poruke: 2743
*.etf.bg.ac.yu

ICQ: 9344053
Sajt: alas.matf.bg.ac.yu/~mm011..


+2 Profil

icon Re: efikasniji SELECT?19.08.2001. u 14:51 - pre 247 meseci
Ukoliko to radis iz nekog programskog okruzenja, preporucujem ti da das upit bez limit-a, i da onda sve sto dobijes stavis u neki svoj "cache", i da odatle onda izdvajas 10 po 10.

Ostale vrste optimizacije zavise od baze do baze, ali je pitanje koliko ce one dati dobre rezultate, pa mi se cini da je prethodno jedno od boljih resenja. Naravno, veliki broj problema se javlja sa prethodnim nacinom kao sto je izmena baze izmedju pregleda 10-te strane i prve, kao i to sto ako se vrati stvarno veliki broj podataka, moras rucno da delis podatke stalno na stranice (ali i to je opet mnogo brze od novog upita).

Istina, moguce je koristiti i neko medjuresenje, kao npr. da postavis limit na 10x10=100, umesto 10, i onda to stavis u cache, pa mozes brzo da isporucis sledecih 10 strana, a za 11. moras ponovo da "upitujes".

Toliko.
Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
 
Odgovor na temu

tOwk
Danilo Šegan
Zemun/Beograd

Član broj: 94
Poruke: 2743
*.etf.bg.ac.yu

ICQ: 9344053
Sajt: alas.matf.bg.ac.yu/~mm011..


+2 Profil

icon Re: efikasniji SELECT?19.08.2001. u 14:56 - pre 247 meseci
E da a sto se tice drugog pitanja, svaki iole ozbiljniji SQL server ce se sam potruditi da ima u cache-u odgovarajuci podatak.

Recimo ako prvo uradis upit u kojem pomocu COUNT dobijas broj podataka, server bi trebao makar malo brze da uradi sledeci upit u kojem ti pozivas isto samo bez COUNT-a. Naravno, zavisi od servera do servera, ali mozda je moguce da ce i neke vrste ugnjezdavanja upita dati dobre rezultate (a ovo sigurno ne moze na MySQL).

Toliko.
Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
 
Odgovor na temu

cvele

Član broj: 748
Poruke: 20
*.56.EUnet.yu



Profil

icon Re: efikasniji SELECT?20.08.2001. u 08:28 - pre 247 meseci
Izvinjavam se, nisam napisao da se radi o MySql bazi.
 
Odgovor na temu

tOwk
Danilo Šegan
Zemun/Beograd

Član broj: 94
Poruke: 2743
*.etf.bg.ac.yu

ICQ: 9344053
Sajt: alas.matf.bg.ac.yu/~mm011..


+2 Profil

icon Re: efikasniji SELECT?20.08.2001. u 14:33 - pre 247 meseci
SQL92 definise i "kurzore" (cursors) koji su zaduzeni upravo za to sto tebi treba...

Pogledaj uputstvo MySQL (koje dolazi uz distribuciju) i pronadji kako se koriste kurzori iz tvog okruzenja (oni ne mogu sa komandne linije, vec samo iz embedded SQL upita, ali neke baze kao sto je pgsql dozvoljavaju i to cak).

Znaci upiti od interesa su "DECLARE CURSORS" i "FETCH", pa sa srecom.

Prema ovome, ukoliko MySQL podrzava kurzore, moje prethodne poruke mozes zanemariti.

Toliko.
Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
 
Odgovor na temu

[es] :: Baze podataka :: efikasniji SELECT?

[ Pregleda: 4977 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.