webForumDet fria alternativet

Vad laddar snabbast till chat? Textfil,XMLfil,Databas?

ASP

11 svar · 800 visningar · startad av Maadmax

Medlem sedan juli 200659 inlägg
Frågan#1

Hej jag har en chatt som i nuläget är med en textfil som lagring för chattdatan. Jag kör med 500 millisekunder mellan varje anrop till sidan som hämtar ut datan. Nu är det såhär att textfiler och FSO inte har något stöd för att köra limit på antal rader ur textfilen som ska hämtas ut, och om man inte rensar chattloggen skitofta så blir ju textfilen jävligt stor och då kan det tillslut ta lång tid att ladda in chattdatan.
Därför vill jag inte använda textfiler, jag vill byta till Databas(Access/MySQL) eller en XML fil. Med en databas kan man ju köra LIMIT och TOP för att begränsa datan som hämtas ut. Jag behöver nämligen inte hämta ut hela loggen, 30 poster räcker. Däremot så kan jag tänka mig att det tar längre tid att koppla upp till databasen än vad det tar med XML/Textfil att hämta ut datan.

Jag har bara jättelite erfarenhet inom XML och lyckades tidigare (genom att kopiera/klistra) ha en loop som loopar ut chattmeddelanden, men då fick jag inte till det när man skulle skicka in en post i XML-filen.
Access och framförallt MySQL skulle inte alls vara några problem att fixa en fungerande lösning i, men som sagt det kanske är segare.

Så vad tycker ni?
Databaser eller XML?
Och ifall XML, hur gör man för att skicka in data i xml-fil?

Medlem sedan jan. 20022 440 inlägg
#2

en databas är inte lösningen för dig, jag hade valt xml. Att skriva till XML är ungefär som en blandning mellan textfilshantering och databashantering. Det kräver lite mer arbete en att skriva till en textfil men är snabbare än en databas till det du ska göra.

Du kan dessutom anpassa med minimala ändringar i koden eftersom du redan använder dig av FSO.

Är inte heller så duktig på XML men jag har å andra sidan inte behövt använda det särskilt mycket.

Medlem sedan juni 20008 205 inlägg
#3

XML ska du inte ha, det är skitlångsamt. En databas är nog klart bättre för dina ändamål. Egentligen är ingetdera jättebra, men en databas är klart bättre än en XML-fil om man ska hämta data fort. Den kan dessutom cacha vissa delar i RAM vilket gör det larvigt mycket snabbare att hämta ut grejer, och även om den måste gå ner på disk lär filhanteringen vara avsevärt mycket mer sofistikerad än i XML-parsern.

Medlem sedan jan. 20022 440 inlägg
#4

http://www.4guysfromrolla.com/webtech/081300-1.shtml

Är väl en bra början

Medlem sedan jan. 20022 440 inlägg
#5

spango skrev:

XML ska du inte ha, det är skitlångsamt. En databas är nog klart bättre för dina ändamål. Egentligen är ingetdera jättebra, men en databas är klart bättre än en XML-fil om man ska hämta data fort. Den kan dessutom cacha vissa delar i RAM vilket gör det larvigt mycket snabbare att hämta ut grejer, och även om den måste gå ner på disk lär filhanteringen vara avsevärt mycket mer sofistikerad än i XML-parsern.

http://www.itworld.com/nl/xml_prac/10112001/

Det ska ju vara ändamålsenligt också. All data gör sig inte bäst i databaser.

Medlem sedan juli 200659 inlägg
#6

om man jämför XML och Databaser med en textfil som jag har nu då?
Fördelen nu ligger på databaser:
* Jag har god kunskap inom det
* Jag vet hur man begränsar datan som skickas ut (LIMIT) så slipper jag visa typ 10000 poster = snabbare

så om ingen har något riktigt bra argument för varför databaser är sämre än xml och textfiler så tell me.

Och förresten, jag behöver argument för att databaser är bättre än textfiler också, jag vill ju inte bygga om hela systemet i onödan.

Tack på förhand, -Repost- Version 0.1 Beta

Medlem sedan juni 20019 519 inlägg
#7

Bygga om systemet? Tja.. det kan ju inte vara jobbigt om du byter från textfil till en databas kan jag inte tänka mig.. det är ju i princip samma sak ju..

Medlem sedan juni 20008 205 inlägg
#8

CatZ skrev:

http://www.itworld.com/nl/xml_prac/10112001/

Det ska ju vara ändamålsenligt också. All data gör sig inte bäst i databaser.

Hade jag fått en femtioöring för varje gång någon länkat till en irrelevant artikel hade jag varit en rik man... :OO ;)

Jag håller med om att XML är jättebra i många fall, men det betyder inte att det alltid är bra, och just här har jag svårt att se vad det skulle duga till. Anledningar till att jag förespråkar en databas är:

  • Databaser är gjorda för att kunna hantera flera samtidiga användare.
  • Du hämtar bara den informationen du är intresserad av. Använder du plaintext eller XML måste du antingen läsa eller skriva betydligt mer än du är intresserad av, vilket är dåligt eftersom...
  • Disk-I/O är långsamt. Databashanterare sköter det bättre än vad du gör när du läser en XML- eller textfil, och dessutom har databasen cachningsmekanismer som gör att de kan undvika det helt.

Som sagt tycker jag inte ens att databaser är det bästa valet, det är att använda någon slags lösning som bor helt i primärminnet, men det är kanske en aning overkill.

Medlem sedan feb. 200112 078 inlägg
#9

Jag förespråkar också databas för detta ändamål, eftersom det är 1) hyfsat skrivintensivt och 2) urvalet som är det viktiga.

Med indexering och lite tänk kan man göra mycket med en databas. Speciellt om det är en ordentlig DBMS som SQL Server eller liknande.

Medlem sedan juni 20014 421 inlägg
#10

Fast använder du xml ska du ju inte använda FSO för att läsa och skriva, det finns skäl till att ms har skapat MSXML.

Medlem sedan juli 200659 inlägg
#11

okej, jag ska testa med databas nu.

Men jag vet fortfarande inte hur mycket skillnad det är med textfil och databas? Går det mycket snabbare med databas?

Medlem sedan mars 20023 561 inlägg
#12

Varför inte bara prova? :)

Sedan känns 500 millisekunder lite väl ofta. Varannan sekund tycker jag duger gott. Dessutom mår servern lite bättre om användartalet stiger.

325 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
197 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)