Izpisovanje cca. 20000 zapisov iz baze
 
nene 9. okt 2012 07:49:36 Pridružen od:
10. jan 2008
190 objav
67 7 1
#1

Zdravo mojstri. Rabim nekaj pomoči oz. idejo. V mySQL bazi imam tabelo s cca. 20000 zapisi. Vsak zapis je sestavljen iz 11 parametrov, torej 11 stolpcev.



To tabelo bi rad izpisal na spletni strani. :) Vem, velika količina podatkov. :) Spletna stran teče na Joomli, za izpisovanje podatkov pa uporabljam Ari Data Tables. V ta modul pač vpišem SQL query in modul izpiše lepo tabelo. Ker gre za veliko količno podatkov, se stran nalaga in nalaga, večkrat pa vrže tudi blank page, ker je dosežen PHP memory limit. Tako, da moram poiskati drugo rešitev.



Ker nisem nek hud programer iščem malo pomoči, kako to zapeljati. Glavni namen tega je iskanje po teh zapisih. ARI Data Tables ima to super rešeno, ker omogoča "on the fly" iskanje po teh zapisih, zato mi je všeč. Je sploh možno prikazati 20000 zapisov brez kakšnega hudega nalaganja? Ker trenutno se vedno vnovič izvede ta SQL query, ki seveda traja in traja, da ne omenjam sistemskih resursov.



Če to ne bo šlo ostane opcija iskalnika kot obrazca, torej iščem vse zapise iz Ljubljane izberem kraj Ljubljana in kliknem iskanje. Potem mi ta query izpiše samo zapise s poljem "Ljubljana".



Še kakšna ideja/rešitev?


všeč(0) ni všeč(0) spam(0)
 
Mešetar 9. okt 2012 07:57:21 Pridružen od:
24. nov 2010
1543 objav
1945 962 114
#2

seveda da ni mozno...no, ce bi imel ogromno kolicino spomina tako na serverju kot na svoji masini, potem ja... je pa tudi omejitev pri php skriptah, max 128M za izvajanje... tako da tudi ce bi to zelel, bi mogu izpisovati po batchih, nekaj tisoc rekordov naenkrat v spominu za zanko....



torej pusti ti tiso iskanje on the fly, ki seveda ni mozno uporabiti v tvojem primeru...



priporocam izpis po straneh... iskanje pa naredi po bazi in ne v live html tabeli...veliko hitrje in bolj smotrno, predvsem pri veliki kolicini pdoatkov



ne pozabi postaviti indexov v mysql tabeli na polja, kjer opravljas iskanje


všeč(1) ni všeč(0) spam(0)
 
Lucifix 9. okt 2012 08:34:15 Pridružen od:
14. okt 2008
744 objav
438 12 0
#3

Za prikaz celotne baze enostavno uporabi paging, za soltiranje pa kak jquery live ajax request.


všeč(1) ni všeč(0) spam(0)
 
pavarti 9. okt 2012 09:03:28 Pridružen od:
26. okt 2011
445 objav
587 92 14
#4

Dodal bi še, da pri SELECTu izberi samo polja, ki se bodo prikazovala, ne SELECT *.


všeč(2) ni všeč(0) spam(0)
 
nene 9. okt 2012 10:37:32 Pridružen od:
10. jan 2008
190 objav
67 7 1
#5

Ja, sem se bal da bo tako. Dobro, nič ne de, bo pač iskanje po bazi.

Moram še malo pogledati tale paging, ker kot rečeno nisem programer in to prvič vidim. Bom malo naštudiral, ker ni videti nič težkega.



@pavarti To bom, ker nekaj polj ne bom prikazoval. Je tudi sicer kakšna razlika, če bi hotel prikazati vsa polja, de ne uporabim SELECT *?



Sicer pa hvala vsem. Sedi, +. :)


všeč(0) ni všeč(0) spam(0)
 
pavarti 9. okt 2012 11:17:10 Pridružen od:
26. okt 2011
445 objav
587 92 14
#6

Tukaj je enostavna logika.



Več podatkov zahtevaš, več resourcev porabiš (časa pozivedve, prenos podatkov med mysql in php, memorija ...).



Ampak mislim da najprej podpri paging, s tem boš gotovo rešil težavo.


všeč(0) ni všeč(0) spam(0)
 
zeko 9. okt 2012 11:17:18 Pridružen od:
26. feb 2010
2680 objav
3522 839 122
#7

Kaj pa mogoce kak ajax loading ob scrollanju. Pa da izpisuje po 1000 vrstic na enkrat.


všeč(0) ni všeč(0) spam(0)
noobiliate & bizarre domain name collector
 
pavarti 9. okt 2012 11:27:52 Pridružen od:
26. okt 2011
445 objav
587 92 14
#8

zeko:

Kaj pa mogoce kak ajax loading ob scrollanju. Pa da izpisuje po 1000 vrstic na enkrat.




To bi jaz odsvetoval. Če je vrstic preveč bo trpela memorija brskalnika, v najslabšem primeru se lahko brskalnik tudi sesuje, v kolikor ima uporabnik malo rama.


všeč(0) ni všeč(0) spam(0)
 
Mešetar 9. okt 2012 11:33:27 Pridružen od:
24. nov 2010
1543 objav
1945 962 114
#9

seveda je odvisno od DOM elementov...



ce se gre za simple table row, z nekaj stolpci in navadnimi tekstovnimi podatki notri, jih je komot na strani od 500-1000, tudi vec


všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se