Snelheid van een database.

Als ik een site baseer op een structuur van tekstbestanden (.txt) of ik werk met een MySQL database, heeft dat dan effect op de snelheid van die site? Wordt PHP of de webserver zwaarder belast met het openen van tekstbestanden, dan met het ophalen van data uit een MySQL database? Of maakt dat helemaal niets uit? Is de actie die ondernomen wordt ongeveer dezelfde? Natuurlijk zal het ervan afhangen hoe groot die site is, en hoeveel data er verwerkt moet worden. Neem nu bijvoorbeeld [url=http://confituur.com/site7]onze site[/url], maar dan met wat met wat meer tekst (met wat meer tekst bedoel ik ongeveer de lengtes van de nieuwsitems op de voorpagina van MacOSX.nl).

het heeft wel zeker invloed. Het hangt af van wat je doet. Als je alleen maar een hele file inleest en er verder niets mee doet, dan is en file efficienter. Als je echter gaat zoeken naar bepaalde tekst op basis van acties die een gebruiker doet (bijvoorbeeld: alle berichten ophalen die bij deze discussie horen) dan is een database vele malen efficienter. Databases zijn gemaakt om (heel) veel informatie op te slaan in en logische structuur zodat je op basis van criteria heel snel specifieke data kan opvragen.

Het is zelfs zo dat waneer je een set data ophaalt een database sneller is met het zoeken van de juiste records via een sql vraag, dan als je alle data in een array in PHP stopt en daar doorheen loopt tot je de juiste records vindt.

Hoe meer in je database (of: hoe meer je er uittrekt), hoe langzamer het wordt!

Als je pagina-inhoud niet per seconde verandert doe je er goed aan om caching goed in te stellen, zo kan je gemakkelijk een database gebruiken zonder je site te veel te belasten.

[quote:42b5072a46="Bas Sandee"]Hoe meer in je database (of: hoe meer je er uittrekt), hoe langzamer het wordt![/quote:42b5072a46]

Maar dat is met tekstbestanden of een DB hetzelfde, niet? Of wordt een DB langzamer naar gelang hoe voller ze komt te zitten?

[quote:42b5072a46=“rburgt”]Als je pagina-inhoud niet per seconde verandert doe je er goed aan om caching goed in te stellen, zo kan je gemakkelijk een database gebruiken zonder je site te veel te belasten.[/quote:42b5072a46]

Is dat ook zo voor tekstbestanden? Ik heb nu [b:42b5072a46]eAccellerator[/b:42b5072a46] op m’n server geïnstalleerd om de php scripts te cashen.
Tekstbestanden worden natuurlijk alleen gecached op de computer van de gebruiker…?

[quote:f0a9602171="Bas Sandee"]Hoe meer in je database (of: hoe meer je er uittrekt), hoe langzamer het wordt![/quote:f0a9602171] Maar dat is weer een kwestie van de juiste combinatie van hardware, OS, database en optimalisatie. Er zijn genoeg extreem grote databases die toch uitstekend performen. Kijk bijvoorbeeld maar eens naar Google.

[quote:7eb2da9204="wout"][quote:7eb2da9204="Bas Sandee"]Hoe meer in je database (of: hoe meer je er uittrekt), hoe langzamer het wordt![/quote:7eb2da9204]

Maar dat is met tekstbestanden of een DB hetzelfde, niet? Of wordt een DB langzamer naar gelang hoe voller ze komt te zitten?[/quote:7eb2da9204][/quote]

Tekstbestanden worden sneller langzamer dan databases langzaam worden en verder bepaalt je database structuur in hoge mate hoe snel of langzaam alles wordt; je moet wel een hele grote site hebben (zoiets als macosx.nl) om tegen performance problmene aan te lopen en caching e.d. nodig te hebben.

als je veel dynamisch gegevens moet wijzigen gebruik dan een database als de file bijna niet moet gewijzigd worden gebruik dan de file beide hebben inpact op de performance maar op een gewone site zal je dat niet merken

Als je per se wilt hosten op een MacOSX server zal je site veel sneller langzamer worden dan wanneer je linux gebruikt. MacOSX.nl zou voor een linux server geen probleem vormen, maar het is nu eenmaal MacOSX.nl

[quote:8e14413d09="mac748"]Als je per se wilt hosten op een MacOSX server zal je site veel sneller langzamer worden dan wanneer je linux gebruikt. MacOSX.nl zou voor een linux server geen probleem vormen, maar het is nu eenmaal MacOSX.nl[/quote:8e14413d09]

En waarom is dat het geval?

In een ander draadje is er ook al over bericht, [url=http://gathering.tweakers.net/forum/list_messages/1041956]lees hier verder[/url]

[quote:a96fd81fe5="mac748"]In een ander draadje is er ook al over bericht, [url=http://gathering.tweakers.net/forum/list_messages/1041956]lees hier verder[/url][/quote:a96fd81fe5]

Dat is geen uitleg. Het zegt namelijk niets over Apache in combi MySQL op pak-um-beet een Cobalt versus een XServe in een real life situatie. Dus onderbouw je uitspraak maar.

(Het heeft overigens geen reet te maken met de vraag die in het topic gesteld is: is een database sneller of een tekstbestand – duus voor de oorspronkelijke vraagsteller; trek je niks aan van deze FUD)

Ach zo, heb je niet verder gelezen op: [url=http://www.anandtech.com/mac/showdoc.aspx?i=2436&p=6]anandtech[/url]? Dat lijkt me moeilijk te weerleggen, het komt er op neer dat een multithreaded programma zoals mysql en apache bij een toenemend aantal threads slechter gaan presteren onder osx-server terwijl dat bij linux niet het geval is. Dat is overigens ook mijn eigen ervaring op mijn ontwikkelserver.

Edit: over het oorsprongkelijke onderwerp; Ik zou altijd een database kiezen. Dat werkt fijner en je hoeft geen schrijfrechten te verlenen aan een map op je webserver. Mocht de site nog uitbreiden dan ben je met een database waarschijnlijk sneller klaar.
Maar goed, ik vind databases gewoon leuk!

[offtopic] [quote:632af5fcf4="tennapel"]trek je niks aan van deze FUD)[/quote:632af5fcf4]FUD? F.U.D.... Ah; [url=http://www.answers.com/topic/fud-1]Female Urinary Device[/url].… :P [/offtopic]

Ik heb vernomen dat het gebruik van tekstbestanden ipv een database nog wel eens problemen geeft als zo’n textbestand door meerdere mensen tegelijkertijd geëdit wordt. De tekstbestanden willen dan nog wel eens de geest geven waardoor je een verhoogde kans loopt je “kostbare” data te verliezen…

Een database daarentegen is ingesteld op meerdere gebruikers en zet de queries netjes in de wachtrij.