Toon posts:

[php/mysql] forum sneller maken.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil mijn forum een stukje sneller maken door de index-pages tijdens posten en verwijderen statische html te laten generen.

Mij persoonlijk lijkt dit een juiste keuze, omdat je nu niet hoeft te vroeten in de database om de index-page te generen.

zie ik wat over het hoofd met deze methode of is het een juiste beslissing?

en wat gebeurd er als het forum een druk bezocht forum wordt en iemand een postig opslaat (page wordt dan gegenereerd) en tegelijkertijd opent iemand de index-page? gaat dit goed of krijgt er 1 een foutmelding, zo ja.. hoe zouden jullie dit oplossen?

  • AcIDeR
  • Registratie: Mei 2002
  • Laatst online: 30-08 16:57
minder query's is sneller
probeer dat eerst eens.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
AcIDeR: minder query's is sneller. probeer dat eerst eens.
Ik vind cachen van veel bezochte pagina's anders ook een uitermate goede aanpak. De indexen zullen zeer vaak bezocht worden. Als de inhoud van zo'n index pagina gecached kan worden, hoef je niet percee alle mogelijk toeren uit te halen om deze zeer snel op te kunnen bouwen.

Er zijn trouwens wel frameworks die op een standaard manier als caching bieden, maar dat zijn meestal toch frameworks voor andere omgevingen als bijvoorbeeld Java Servlets en JSP.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op zaterdag 13 juli 2002 20:42 schreef aarninkron het volgende:
Zorg er dan sowieso voor dat totdat de nieuwe af is, de oude er nog staat.
Dan zal er nooit een foutmelding komen.

Verder moet je afwegen of het aantal keer dat ie opnieuw gebakken moet worden opweegt tegen het elke keer opnieuw maken.

En daarnaast moet je eens kijken of je het niet op andere manieren kan optimaliseren.
Op zaterdag 13 juli 2002 20:53 schreef AcIDeR het volgende:
minder query's is sneller
probeer dat eerst eens.
Dat is niet waar.
Ik kan je een voorbeeld geven waarbij 1 query 150 andere vervangt en hetzelfde resultaat oplevert, in beide gevallen 'zo optimaal als ik hem kan krijgen' en toch een stuk trager is...

Maar elke 'zinloze' query verwijderen is alleen maar performance winst ja :)

  • paulh
  • Registratie: Juli 1999
  • Laatst online: 22-06 15:30
Je forum wordt snel door:
- goede indexen
- weinig tabellen (te veel joins maken de boel vreselijk traag)

statisch genereren zou ik niet doen ... dan krijg je van die grappen dat als jij aan het genereren bent dat iemand anders net die pagina opvraagt en dan een halve pagina krijgt. Een forum is daar veels te actief voor. Met nieuws pagina's vind ik het geen gek idee.

[ZwareMetalen.com] - [Kom in aktie tegen de CO2 maffia]


  • Fatamorgana
  • Registratie: Augustus 2001
  • Laatst online: 07-08 04:17

Fatamorgana

Fietsen is gezond.

Je kunt kijken of je betere indexen kunt maken. Neem bv een query als: SELECT * FROM pages

Dan kun je met: EXPLAIN SELECT * FROM pages zien of er mogelijkheden zijn voor optimalisatie. Daar heeft MySQL mooie hulp voor.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op zaterdag 13 juli 2002 22:10 schreef paulh het volgende:
statisch genereren zou ik niet doen ... dan krijg je van die grappen dat als jij aan het genereren bent dat iemand anders net die pagina opvraagt en dan een halve pagina krijgt. Een forum is daar veels te actief voor. Met nieuws pagina's vind ik het geen gek idee.
Daar is wel om heen te werken hoor :)

Dat is, imho, niet het allerlastigste.

Verwijderd

Topicstarter
Op zaterdag 13 juli 2002 22:10 schreef Fatamorgana het volgende:
Je kunt kijken of je betere indexen kunt maken. Neem bv een query als: SELECT * FROM pages

Dan kun je met: EXPLAIN SELECT * FROM pages zien of er mogelijkheden zijn voor optimalisatie. Daar heeft MySQL mooie hulp voor.
en dan verschijnt het vanzelf op het scherm, wat MySQL aanraad? of moet ik de uitleg dan ook nog weer in een aparte var op het scherm tonen..

of net als onderstaand voorbeeld, daar moetje ook $row[0]; gebruiken...
PHP:
1
<?$sql = "SELECT COUNT(id) FROM users WHERE naam ='kees'";$result = mysql_query($sql);$row = mysql_fetch_array($result);$aantal = $row[0];?>

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op zondag 14 juli 2002 14:13 schreef aarninkron het volgende:
en dan verschijnt het vanzelf op het scherm, wat MySQL aanraad? of moet ik de uitleg dan ook nog weer in een aparte var op het scherm tonen..
http://www.mysql.com/doc/Q/u/Query_Speed.html
Veel plezier met lezen :)
Explain gaat jou niet uitleggen wat _jij_ moet doen, maar probeert inzicht te verschaffen wat mysql doet met de opgegeven query...
Pagina: 1