Avatar billede intenz Novice
29. september 2005 - 11:05 Der er 7 kommentarer og
1 løsning

Hastighed bedre ved filsystem end MySQL?

Hej.

Jeg har et lille spørgsmål jeg har tænkt lidt over.
Jeg har en database kald der bruges til at hente omkring 20 variabler ud af min mysql database.

Jeg har så tænkt på det ville være hurtigere/mindre krævende for serveren at hente variablerne direkte i en tekst-fil vha. readfile eller include i php?

Det er ikke de samme variabler der hentes hver gang, og kaldet køres omkring 200.000 gange om dagen.

Mvh
Mads
Avatar billede intenz Novice
29. september 2005 - 11:06 #1
Jeg skal måske lige skrive at der så vil blive oprettet en tekst-fil for hver muligt database kald (omkring 1000+ filer med unikt navn).
Avatar billede arne_v Ekspert
29. september 2005 - 11:12 #2
performance ved flade filer bør være bedre end database

men:
  - database er nemmere at administrere
  - forskellen er nok størst ved lav load (da fil systemets cache reduceres ved høj load)
  - database er mere skalerbart da database kan flyttes til en anden box end app

Har du ikke mulighed for at gemme data i session og dermed nedbringe
antal opslag ?
Avatar billede intenz Novice
29. september 2005 - 13:46 #3
Jeg kommer lige med en længere forklaring.

Jeg har siden www.livewebstats.dk der er en gratis besøgstæller.

Hver gang tælleren hentes på en side hentes brugerens data i databasen. Det er så disse data jeg vil gemme i filer i stedet.

Dataen vil blive i databasen, så nye filer nemt kan genereres. Men hvis jeg kan spare et kald per sidevisninger tælleren tæller, vil det i det lange løb blive en del sql kald.

Det er ikke fordi databasen er overbelastet som det ser ud nu, men hellere være ude med rettelser inden fejlen opstår.

Men spørgsmålet er så om det vil være bedre på den måde?
Avatar billede arne_v Ekspert
29. september 2005 - 14:30 #4
den tror jeg absolut at du skal holde i databasen
Avatar billede mr_chaos Praktikant
29. september 2005 - 17:30 #5
Må helt klart give arne_v ret, en del filsystemer tillader slet ikke så mange filer i en mappe.
Desuden er der søgningen for at finde filen i en mappe, som nok heller ikke kan optimeres så meget som databasequery'en kan.
Da queryen er den samme bare med forskellig id, kunne man nok spare noget ved at lave en store procedure(Mysql 5.0) eller preparedStatement for at optimere.
Avatar billede intenz Novice
29. september 2005 - 20:36 #6
Okay.

Men den skal ikke søge efter filen, den skal bare læse fra den.
Altså en bruger med ID: 25 f.eks. vil læse fra filen 25.php der så ville indeholde nogle variabler.

Men det var også bare en ide jeg lige ville have lidt feedback på om kunne betale sig.
Avatar billede mr_chaos Praktikant
29. september 2005 - 21:05 #7
Det tager jo også tid for filsystemet at finde filen i filsystemet.

Det er skam langt fra gratis, hvor databasen for det meste optimere med et index, så kan det være filsystemet er ude i en sekvensiel søgning igennem alle filer for at finde den du angiver.
Avatar billede intenz Novice
30. september 2005 - 10:19 #8
Okay, ideen er droppet :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester