[Alg] gegevens uit database cachen *

Pagina: 1
Acties:

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
Stel je haalt een bulk data (10000 records) op uit een DB,
en dat zijn bijvoorbeeld persoonsgegevens.
Stel dat je dan wil sorteren op achternaam, terwijl die dat standaard op voornaam doet kan ik me voorstellen dat je opnieuw de query submit met een andere sort-by. Maar,

stel ik werk met php ( ;) ) en ik wil voorkomen dat ik elke keer de DB moet lastigvallen met die query...
Hoe cache ik die dan zodat de gebruiker gemakkelijk de opgehaalde resultaten kan sorten? (XML ofzo?)

Of kan ik maar beter gewoon WEl die query laten uitvoeren?
Geen idee dus welke aspecten hierbij komen kijken -> snelheid, veiligheid, gemak, serverload?

Dank alvast :)

mijn naam slaat nergens op, althans niet op mij :P


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 10:01

gorgi_19

Kruimeltjes zijn weer op :9

stel ik werk met php ( ) en ik wil voorkomen dat ik elke keer de DB moet lastigvallen met die query...
Hoe cache ik die dan zodat de gebruiker gemakkelijk de opgehaalde resultaten kan sorten? (XML ofzo?)
Waar denk je dat een database voor dient? :? Wat is er mis met een query uitvoeren? Als je x maal per minuut dezelfde query uitvoert, kan je denken aan caching, maar nergens uit je verhaal blijkt dat je vaak dezelfde query uit voert.

[ Voor 20% gewijzigd door gorgi_19 op 21-01-2004 00:46 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Stel dat je je vraag wel durft te stellen en al die stel datjes weg laat. :)

Het hangt van het gebruik af. Maar voor belasting van de DB maakt 1 SORT niet zoveel uit. Pas als je meerdere joins doet en dan gaat sorten neemte de belasting stevig toe.

Verder is dit ook goed te testen als je die DB nu al hebt. Doe maar een query zonder en query met.

{signature}


  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
Nou, nee. Die query wordt niet vaak gebruikt.
Ik denk dat 10x per minuut max is en 2x per minuut de norm.
En dan ook nog eens max 20x per dag max.
Maar ik dacht vooral dat cachen veel sneller was. En qua joins: 2 max per query.

Dus gewoon DBje zijn werk laten doen?

[ Voor 24% gewijzigd door Zoolander op 21-01-2004 00:55 ]

mijn naam slaat nergens op, althans niet op mij :P


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 15-05 14:44

_Thanatos_

Ja, en kaal

Je gebruikt PHP, maar ik ga er stiekem niet vanuit dat je MySQL gebruikt. Volgens mij cachet MSSQL (om maar wat te noemen) de resultaten ook wel zonder order by, zeker als dat over meerdere queries het enige verschil is. Dan hoeft ie alleen nog maar het gecachete resultaat te sorteren, en als daar dan een index op ligt is dat natuurlijk retesnel. Of is MSSQL's cacheing niet zó slim?

En wat doet MySQL eigenlijk? Zijn hier MySQL goeroe's?

日本!🎌


  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
_Thanatos_ schreef op 21 januari 2004 @ 00:54:
Je gebruikt PHP, maar ik ga er stiekem niet vanuit dat je MySQL gebruikt. Volgens mij cachet MSSQL (om maar wat te noemen) de resultaten ook wel zonder order by, zeker als dat over meerdere queries het enige verschil is. Dan hoeft ie alleen nog maar het gecachete resultaat te sorteren, en als daar dan een index op ligt is dat natuurlijk retesnel. Of is MSSQL's cacheing niet zó slim?

En wat doet MySQL eigenlijk? Zijn hier MySQL goeroe's?
Goede vraag ook: kan je die cache makkelijk aanroepen? (vanuit PHP)
En ja: ik gebruik (tuurlijk ;) ) MySQL

mijn naam slaat nergens op, althans niet op mij :P


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
_Thanatos_ schreef op 21 januari 2004 @ 00:54:
Je gebruikt PHP, maar ik ga er stiekem niet vanuit dat je MySQL gebruikt. Volgens mij cachet MSSQL (om maar wat te noemen) de resultaten ook wel zonder order by, zeker als dat over meerdere queries het enige verschil is. Dan hoeft ie alleen nog maar het gecachete resultaat te sorteren, en als daar dan een index op ligt is dat natuurlijk retesnel. Of is MSSQL's cacheing niet zó slim?

En wat doet MySQL eigenlijk? Zijn hier MySQL goeroe's?
MySQL doet ook caching, maar dan iets brakker. En bij veel joins en sort gaat het opeens _veel_ trager.
Ben geen guru. O-)

[ Voor 4% gewijzigd door Voutloos op 21-01-2004 00:58 ]

{signature}


  • Beaves
  • Registratie: Februari 2000
  • Laatst online: 10:28

Beaves

Usque ad Finem

Als je toch een echte database wilt gebruiken maar je er geen geld voor wilt betalen, ga dan voor PostgreSQL, dat is een gratis database die wel (bijna) alle feature's heeft die een database zoals MS SQL of Oracle ook hebben.

Schotlandofiel | Godzijdank ben ik atheïst
Canon 7D / 20D / 300D + glas | Just Light | Flickr


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 15-05 14:44

_Thanatos_

Ja, en kaal

Goede vraag ook: kan je die cache makkelijk aanroepen? (vanuit PHP)
En dat is juist het mooie: dat gaat automatisch al door de gecachete query naar de server te slingeren ;)

Maarja, dan moet het wel goed werken dus... misschien dat het in MySQL 5.x eindelijk goed zit. Anders zou je idd naar Postgres of hoe-heet-die-andere-open-source-DB-server-ook-al-weer :)

/edit
ohja, Firebird bedoelde ik...

[ Voor 7% gewijzigd door _Thanatos_ op 21-01-2004 01:17 ]

日本!🎌


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 10:51

.oisyn

Moderator Devschuur®

Demotivational Speaker

* titelfix :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • 4VAlien
  • Registratie: November 2000
  • Laatst online: 26-05 14:22

4VAlien

Intarweb!

Ik heb ook MySQL caching aanstaan, en met een aantal tijds intensieve queries die een klein resultaat hebben werkt het bij mij prima.

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 31-03 15:20
Zoolander schreef op 21 januari 2004 @ 00:40:
stel ik werk met php ( ;) ) en ik wil voorkomen dat ik elke keer de DB moet lastigvallen met die query...
Hoe cache ik die dan zodat de gebruiker gemakkelijk de opgehaalde resultaten kan sorten?
Je zou een sessie kunnen maken met de resultaten in een array. Als een gebruiker *binnen* zijn laatste zoekopdracht wil sorteren kan je die array anders sorteren. Op deze manier ontlast je de database maar ik betwijfel of het sneller is dan nogmaals een query uitvoeren met een andere sort-by. MySQL kan namelijk veel sneller sorteren dan PHP. Zeker als je goede indexen maakt.

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Is het niet mogelijk met JavaScript de sort client-side uit te voeren?

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 15-05 14:44

_Thanatos_

Ja, en kaal

Wel bikkel als je dat voor elkaar krijgt. Je bent immers met je javascript afhankelijk van hoe de html uitgepoept wordt. Met DOM kun je een heel eind komen, maar sorteren is denk ik geen kattepis, en het is natuurlijk traag (zeker als je de school-methode gebruikt ;)).

OTOH, als het nou geen webapplicatie, dan is sorten op de client natuurlijk prima mogelijk met eoa QuickSort functie/methode.

日本!🎌


  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Een tabel vullen via JavaScript is goed te doen (doet Tweakers ook).
Sorteren voor vullen lijkt mij ook nog wel te doen.

Zou wel relaxed zijn in bijvoorbeeld de pricewatch.

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 15-05 14:44

_Thanatos_

Ja, en kaal

Ik gok (heb niet gekeken) dat de PW de tabel in javascript *opbouwt* en niet een bestaande platte html-tabel populeert met gegevens. Sorteren van een tabel zou namelijk die vaardigheid vereisen en dat is echt wel heel wat pittiger dan een stuk javascript wat html laten uitpoepen. En bij PW-tabellen zou het zeer zeer traag gaan (de pagina's laten zich nu al pas na een paar seconden zien en dat ligt niet aan m'n internetverbinding).

日本!🎌


  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Waarom is het nodig om een platte tabel te vullen?
Is het niet mogelijk een div ofzo in JS leeg te maken en opnieuw te vullen (weer met een tabel, maar dan anders gesorteerd)?

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 19-05 09:52

thomaske

» » » » » »

client-side tabellen sorteren: sortTableRows (van: creative8500)

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."

Pagina: 1