ugrás a tartalomhoz

Archívum - Jan 8, 2022

Dátum
  • Minden
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

Nagy mennyiségű adat szűrése + lapozgatás?

mind1 valami név · 2022. Jan. 8. (Szo), 13.14
Próbálom röviden, de így is hosszú lesz :)

Nagy tömegű adatból kell lekérdezést csinálni, lapokra osztva az eredményt.
A gond ott kezdődik, hogy regex alapú szűrést akarok végezni az adatokon.
Postgres esetében ez nem gond, de ha az a vágyam, hogy a program ne legyen driver függő, akkor azt hiszem, az adatbázis szerverek spéci szolgáltatásaira nem számíthatok.
Amíg mindent intézhetek adatbázis oldalon, addig no problem, a megcélzott keretrendszer (flask+sqlachemy) nyújt lapozós szolgáltatást egy paginate nevű függvény formájában.
De mi a bánatot lehet csinálni, ha olyan válogatást kell végezni, amire az adatbázis nem képes? A meglévő 5-6 millió sor betöltése kifekteti a szervert és a klienst is, részben timeout, részben out of memory képében.
Van erre valami megszokott, elfogadott algoritmus, hogy lehessen könnyen, gyorsan lapozgatni a találatok közt és ne bolonduljon meg az oldalszámozás?
Mert az még O.K., hogy az első lapot megjelenítem úgy, hogy addig olvasom a sorokat, amíg be nem jön egy oldalnyi a szűrésre illeszkedő sor.
De az utolsó (tehát nem a 123. oldalra, hanem általánosságban az utolsó) oldalra csak úgy tudnék lépni, ha végigolvasom a teljes táblát, ami iszonyat lassú.
Caching nem igazán jöhet szóba, mert ahhoz is kellene előbb egy teljes olvasás és ugyanott tartok.
De akkor hogy?