[PHP] php files genereren, mysql overbodig?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Bozozo
  • Registratie: Januari 2005
  • Laatst online: 20-02 16:10

Bozozo

Your ad here?

Topicstarter
Ik ben momenteel bezig aan een website waarbij de content uit een (mysql) database wordt gehaald, dmv een query op basis van de url. Tegelijkertijd werk ik aan een CMS, waardoor de eigenaar vanalles aan de website kan veranderen. Deze tandem van mysql en php is volgens mij de motor achter een groot deel van alle internetsites.

Nou vraag ik me af of het niet beter is om mysql buitenspel te zetten. Het is namelijk helemaal niet nodig dat elke gebruiker queries uitvoert.

Het idee:
- er bestaat geen database;
- alle content bevindt zich in een php bestand; zeg content.php.
- het menu staat in menu.php;
- als iemand een url opvraagt, dan wordt de bijbehorende content uit content.php gehaald:
code:
1
2
3
4
5
6
7
8
$title = $_GET['title']; //of iets dergelijks
$content = ${"content_"+$title}; //niet getest of dit werkt maar het idee is duidelijk
//schrijf content naar html pagina

$content_home = "blablabla";
$content_projects = "blablabla";
$content_contact = "blablabla";
etc.


- als de eigenaar van de site het CMS opent, dan wordt een mysql table gestart waarin de inhoud uit content.php wordt ingevuld;
- de eigenaar kan nu de content aanpassen;
- als de eigenaar op een knopje drukt (Export Site oid) worden content.php en menu.php opnieuw geschreven aan de hand van de mysql table;
- als de eigenaar het CMS verlaat wordt de mysql table weer gedropt.

Het nadeel van dit alles is natuurlijk dat het omslachtig is, maar volgens mij moet het buitenspel zetten van mysql leiden tot een snellere site en een lagere serverbelasting.

Zien jullie problemen, en weet iemand of dit al eens is toegepast?

TabCinema : NiftySplit


Acties:
  • 0 Henk 'm!

  • Palomar
  • Registratie: Februari 2000
  • Niet online
Met simpele sites waar weinig content op staat dan kan dit idd wel, maar bij sites als tweakers.net is het geen goed idee ;)

Acties:
  • 0 Henk 'm!

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Het is omslachtig, het is lastig te onderhouden, het is meer werk, en er is geen probleem dat je ermee oplost :P

Een simpele query op een mysql database belast je server totaal niet en kost ook geen tijd die van significante invloed is op de totale laadtijd van je website :)

Slecht plan dus ;)

Acties:
  • 0 Henk 'm!

Verwijderd

Dit is behoorlijk uit de tijd hoor!

Waarom kijk je niet eens naar Smarty? Tijdens de eerste aanroep van een pagina wordt deze gegenereerd en vervolgens als template in cache opgeslagen. Hiermee krijg je hetzelfde idee...

Acties:
  • 0 Henk 'm!

Verwijderd

Volgens mij bedoel jij eigenlijk gewoon het concept caching.

Het volledig buitenspel zetten van mysql aan de frontend kan best een slimme oplossing zijn om de serverload te verminderen. Alleen alle content opslaan in 1 bestand lijkt me geen handige stap aangezien er dan bij elk request dit (steeds groter wordende) bestand moet inladen voor maar een klein stukje info.

Ik weet niet precies waarvoor je een site wilt maken, maar het statisch dumpen van bestanden lijkt me pas slim worden wanneer je zeer veel bezoekers hebt en/of zeer zware queries nodig hebt of de content niet vaak hoeft te wijzigen.

Acties:
  • 0 Henk 'm!

  • ? ?
  • Registratie: Mei 2007
  • Niet online

? ?

neen, reden: zoeken

het valt perfect te doen hoor en eigenlijk is MYSQL ook een groot bestand. Maar als je moet kiezen tussen 500 losse bestanden of 1 groot bestand met zoekmogelijkheid, dan ga je voor 't laatste.

met MYSQL kun je eenvoudig alle artikels met een bepaalde categorie of woord weergeven. Zelfs de titels alleen en als je klikt zie je 't volledige artikel.

Good luck als je dat met je 500 bestandjes wil gaan doen ;)
Technische mogelijk, maar dan ben je eigenlijk bezig met je eigen databasengine te schrijven, wat niet de bedoeling is?

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
En wat doe je met content die op een zelfde manier terugkomt zoals bijv. nieuws? Ga je dan een array maken met daarin id's en de berichten. Je moet op een volgpagina immers dat id weer opgeven om het volledige bericht te tonen. En belangrijk...gaat je klant het allemaal nog begrijpen dan?

Ik zou dus zeggen: vooral houden die database, hij heet niet voor niets zo. Maak het jezelf niet moeilijk.

Acties:
  • 0 Henk 'm!

  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

Bozozo schreef op maandag 17 september 2007 @ 14:29:
Nou vraag ik me af of het niet beter is om mysql buitenspel te zetten. Het is namelijk helemaal niet nodig dat elke gebruiker queries uitvoert.
In plaats van queries op de MySQL database, gaan je gebruikers nu 'queries' uitvoeren op het bestand 'content.php', dat effectief je database is.
Het nadeel van dit alles is natuurlijk dat het omslachtig is, maar volgens mij moet het buitenspel zetten van mysql leiden tot een snellere site en een lagere serverbelasting.
Dat valt te betwijfelen. Een database is niets anders dan een interface naar een (of meerdere) file(s), zodat je snel gedeeltelijke informatie uit die file(s) kan halen. Dat je met MySQL ook veel complexere en grootschaligere dingen kan doen, betekent niet dat de overhead overmatig groot is voor de toepassing waar jij het voor wilt gebruiken.

Als je server te zwaar belast worden en je site te traag is, dan kan je beter een goed boek over (My)SQL kopen, want dat ligt allebei niet aan MySQL.

Wie trösten wir uns, die Mörder aller Mörder?

Pagina: 1