Avatar billede hairball Nybegynder
28. januar 2003 - 11:18 Der er 9 kommentarer og
1 løsning

mysql VS txt-fil

Ohøj

Jeg har et site med cirka 1 besøgende i timen ..

Lige nu opdaterer jeg noget statistik direkte i en tabel hver gang en bruger komme ind.

Jeg overvejer i stedet at gemme alle disse SQL queries i en txtfil og så kun køre dem en gang hvert 5 minut ?

Hvordan vil en server have den med at skrive en nye linie til samme txtfil 1000 gange i timen i forhold til at skulle opdatere en tabel i mysql ?
Avatar billede totaliorden Nybegynder
28. januar 2003 - 11:23 #1
Det er hurtigere med mysql, sådan er det
Avatar billede hairball Nybegynder
28. januar 2003 - 11:24 #2
Ok. Det kan jeg dog ikke forstå - for mysql må jo også have nogle filer den skal skrive til hver gang ?
Avatar billede ldrada Nybegynder
28. januar 2003 - 11:29 #3
SQL er jo meget bedre end en tekstfil fordi den jo er lavet til den slags job. Godt nok er det lidt sværere at finde ud af det i starten, men i det lange løb er SQL den bedste løsning. hvorfor? Fordi hvis du nu får en gæstebog, et forum og noget ekstra "interaktivitet" på din hjemmeside vil det være den nemmeste løsning at have det hele ved hånden end at skulle løbe frem og tilbage mellem mapperne på din server for at administrere hver enkelt database.

SQL er også meget hurtigere hvis du for eks. kører en stor internet portal som jubii, hvilket jo også taler for sig selv. Jeg kan se at du kun har 1 besøger i timen, så det skal du ikke tænke på. Desuden så er MySQL så vidt jeg ved en uafhængig "server" og du kan sætte den til at køre på en helt anden maskine i en anden verdensdel på planeten, hvilket betyder at dine hjemmesider vil loade hurtigere hvis du skal opdatere tabellen 1000 gange i timen på en anden maskine og dermed spare din server for besværet.
Avatar billede hairball Nybegynder
28. januar 2003 - 11:32 #4
hehehe ..  jeg skrev forkert .. jeg har 1000 besøgende i timen ..
Så hver gang laver jeg en UPDATE Statistics blablabla ..
Jeg tænkte på at gemme alle disse UPDATES i en text til og så en gang hvert
5. minut køre det som en stort SQL script
Avatar billede avminarm Juniormester
28. januar 2003 - 12:02 #5
jeg tror nok man hyppigst anvender txt filer som log filer, pga det er hutrigt ast tilføje en ny linie i toppen af en txt fil, så måske er din løsning ikke så tosset, prøv begge dele, og test hvor lang tid de er om at eksekvere hver for sig - og skriv meget gerne hvad du kommer frem til her ;-)
Avatar billede ldrada Nybegynder
28. januar 2003 - 13:23 #6
hellere lade hvert besøg køre for sig slv direkte ind i SQL scriptet, da den direkte vej (fra A til B) er hurtigere end at køre fra A dernæst til C og så til B
Avatar billede hairball Nybegynder
28. januar 2003 - 13:24 #7
Ja, totalt set. Men på den måde skal hver bruger ikke vente på SQL serveren
Avatar billede swaxi Nybegynder
28. januar 2003 - 16:44 #8
det lyder ikke som den rigtige måde at gøre det på. for det første kan du ikke regne med at databasen er up-to-date (gør måske ikke så meget her) for det andet risikerer du at der opstår en fildelingsfejl, hvis to brugere tilgår filen samtidig (det kan ikke ske i mysql).
bortset fra det vil jeg klart mene at du sparer nogle få millisekunder på at smide data til en txtfil fremfor at skulle åbne en forbindelse til mysql, gennemføre et update etc.
på den anden side ... hvis du alligevel skal lave andre databaseoperationer i samme session som du logger statistikken, så kan du jo lave en persistent connection - så er det kun selve update'et, der tager tid (og såfremt du ikke har indexer på din tabel, burde det gå omtrent ligeså hurtigt som at skrive til en txtfil)
Avatar billede tomsommer Juniormester
29. januar 2003 - 08:25 #9
mySQL skriver til tekstfiler, men den gøre det hurtigere... desuden arbejder den også med hukommelsesområder... dvs. når den loader henter den indholdet ind i hukommelsen

mySQL er MEGET hurtigere end en tekstfil... lav selv en benchmark hvis du vil

1000 besøg i minuttet vil sige at du med en tekstfil skal åbne den et enormt antal gange, hvilket jo ikke er optimalt. brug mySQL, der er jo en grund til at det er så populært... Jeg er næsten 100% sikker på eksperten også benytter mySQL...
Avatar billede swaxi Nybegynder
29. januar 2003 - 14:47 #10
'hukommelsesområder' kan velsagtens kun bruges på ikke-opdaterende queries (eg SELECT) ... ellers ville man kunne miste data hvis databasen/serveren crashede.

mysql må nødvendigvis tilgå filer gennem filsystemet, akurat som php gør det med fopen() etc.

derfor vil jeg stadig holde på at det alt andet lige går en lille smule hurtigere med at skrive direkte i en txtfil.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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