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

Paginacija performanse

[es] :: MySQL :: Paginacija performanse

[ Pregleda: 631 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

S A J A
Beograd

Član broj: 226539
Poruke: 1911
*.static.sbb.rs.



+422 Profil

icon Paginacija performanse10.09.2024. u 15:57 - pre 7 meseci
Kažu da paginacija preko OFFSET i LIMIT negativno utiče na performanse, jer navodno OFFSET radi tako što preskače sve rekorde na način da jede procesorku snagu pa ako je tabela velika, dobije se značajno usporenje.

Pa kažu, bolje da se koristi metoda sa markerom a to je sa druge strane zezancija za pravljenje. Šta bi bio marker, možda ID... a šta ako je GUID, kako tu da napraviš marker, šta je manje a šta veće od određenog GUID-a?!

Koliko zaista OFFSET utiče na performanse i koliko bi tabele trebalo da budu velike da bi to bio nekav problem? Ako to nisu neka značajna usporenja, verovatno je jednostavnije to da se koristi.
 
Odgovor na temu

Doktor Hlad

Član broj: 337261
Poruke: 756



+198 Profil

icon Re: Paginacija performanse10.09.2024. u 16:50 - pre 7 meseci
O kojoj kolicini podataka se radi u selectu?

Da bi limit i offset imali smisla neophodno je prethodno uraditi sort. Ako select ima rezultat u stotinama miliona redova a tebi treba samo prvih 500 redova - jasno ti je da je potrebno prvo sortirati svih par stotina miliona da bi se uopste znalo kojih 500 su prvi.

Sort i offset su ok ako govorimo o nekom selectu sa malim brojem redova ali ako imas puno redova i hoces da radis offset i limit to znaci da ti nesto sa dizajnom ne valja.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15953
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2378 Profil

icon Re: Paginacija performanse11.09.2024. u 00:32 - pre 7 meseci
Moz bidne a ne mora da znaci.
Sto ti rece Hlad, mora se odradi sortiranje i filtriranje da bi mogao
da zna sta je offset+x slog, nema sanse drugacije...

e sada, rdbms ce koristiti sve moguce nacine da optimizuje taj exec
plan da bi dobio te rezultate sto pre pa ako npr sortiras po indexu
on moze mnogo toga na preskok da nadje...

to sto mozes da uradis sa markerom je vise manje isti klinac jer ako
imas filtere markeri ti nista ne pomazu jer zavisno sta ti je u where...

ako pogledas kroz istoriju, sajtove sa velikom datom paginacija kroz
istoriju prestaje da postoji ... imas "daj jos" i to je to a gde imas
"strane" one su "odokativnom" metodom tu, radi se odokativna procena
koliko imas strana i realno radis "next" a ne "27. strana" ... jer
videces na mnogim sajtovima, kaze ima 500 strana a onda na 324. strani
prc, nema dalje :D ... tako da ta estimacija i "next next" je sw nacin
da simuliras paging a da bude brzo a za to imas razne metode no to sada
vec prevazilazi okvire price o samoj bazi :D
 
Odgovor na temu

Predrag Supurovic
Pedja YT9TP
Užice

Član broj: 157129
Poruke: 6340

Sajt: pedja.supurovic.net


+1585 Profil

icon Re: Paginacija performanse11.09.2024. u 08:47 - pre 7 meseci
Ako je složeni selekt iz više tabela, ili hoćeš da mogućiš da korisnik sortira podatke po želji i slično, onda uradiš selekt u privremenu tabelu pa dalje paginaciju prikazuješ iz te privremene tabele.
 
Odgovor na temu

[es] :: MySQL :: Paginacija performanse

[ Pregleda: 631 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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