login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Databasevriendelijkheid

Offline Frederic - 05/09/2005 19:16 (laatste wijziging 05/09/2005 19:16)
Avatar van FredericPHP ver gevorderde Nu, een vraag waar volgens mij meerdere leden mee zitten.
Stel: we hebben:
1 forum met
9 categorieen met
in totaal 3870 topics met
in totaal 28000 reacties

Nu wil ik op de mainpage het aantal reacties en topics laten zien per categorie én ergens weergeven hoeveel er in totaal zijn.
Dus bvb;
Citaat:
categorie1 heeft 540 topics/6500 reacties...
....
in totaal: 3870 met 28000 reacties

Wat is nu het beste? Per categorie 2 extra kolommetje bijhouden (bij iedere extra topic of reactie met een UPDATE query + 1 doen) met aantal topics / reacties, en zo dan snel deze ophalen per categorie (en dus ook makkelijk de som maken) of alles iedere keer on demand laten berekeken via count()?
Snelste? Makkelijkst? Beste?

8 antwoorden

Gesponsorde links
Offline Thomas - 05/09/2005 19:18
Avatar van Thomas Moderator Het beste kun je volgens mij bepaalde kolommen indexeren - hiermee kun je sneller zoeken en dit soort gegevens (vlug) tonen.

Vooral als je forum FULLTEXT velden bevat zijn dit soort "optimalisaties" op den duur nodig ;).
Offline gothmog - 05/09/2005 19:20
Avatar van gothmog Lid +1 updaten is sneller op te halen en ook makkelijker, maar dan wel omslagtiger (vind ik)

28000 reacties zijn er aardig wat 
nooit met zoveel gewerkt, maar allemaal bij elkaar op tellen lijkt me erg lang te duren...

dus +1 update is nog niet eens zo slecht 
Offline Fenrir - 05/09/2005 20:15
Avatar van Fenrir PHP expert Gewoon met count(). Ik denk dat in een apart veld opslaan pas resultaat oplevert als je meer dan 10.000.000 rijen hebt.
Offline Frederic - 05/09/2005 20:30
Avatar van Frederic PHP ver gevorderde maar de snelste manier is altijd indexeren, toch?
Offline Fenrir - 05/09/2005 20:33 (laatste wijziging 05/09/2005 20:33)
Avatar van Fenrir PHP expert Ja, maar dat verknoeit je database-ontwerp. Je kunt beter een andere vorm van cache gebruiken.
Offline Frederic - 05/09/2005 21:51
Avatar van Frederic PHP ver gevorderde Enig voorstel?
Offline Fenrir - 05/09/2005 21:56 (laatste wijziging 05/09/2005 22:00)
Avatar van Fenrir PHP expert ??

Ik zou count() gebruiken, omdat je toch geen snelheid nodig hebt (het gaat met een aparte kolom 0.00001 sec sneller ofzo. Niemand merkt dat vergeleken bij de download/andere-parse-tijd.

Maar als je per se wilt cachen: google: "php cache".
Offline Thomas - 06/09/2005 13:19 (laatste wijziging 06/09/2005 13:19)
Avatar van Thomas Moderator
Citaat:
Ja, maar dat verknoeit je database-ontwerp. Je kunt beter een andere vorm van cache gebruiken.
Hoezo verknoeit indexeren je database-ontwerp ?
Het zorgt er enkel voor dat (een selectie) gegevens uit een grote tabel snel(ler) beschikbaar (is) zijn (dan wanneer je geen index gebruikt).
Als je tabellen goed opgezet zijn, zullen deze verder niet van structuur veranderen en een index kun je bij mijn weten altijd weer verwijderen. Hoe zou je database-gegevens moeten cachen dan ? (Edit: woop - Use the Google Luke! )
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.172s