webForumDet fria alternativet

hur manga har svarat?

ASP

12 svar · 396 visningar · startad av eriks

Medlem sedan apr. 20011 418 inlägg
Frågan#1

Hej! Jag har ett problem liknande det man borde fa om man vill skapa ett forum som likanr detta (men jag skriver i asp istallet for php). Om man star i forumet ASP, VBScript, sa kan man ju se for alla inlagg hur manga svar de har. Denna uppgift maste val anda vara sparad i ett seperat falt i databasen. Det kanns som om det skulle bli megalangsamt att rakna antalet svar for varje inlagg varje gang sidan laddas. Om man har antalet svar sparade i ett seperat falt i databsen tar det ju visserligen lite mer tid att skriva ett svar, eftersom det maste adderas i specialfaltet ocksa. Vilket ar det basta sattet att gora detta pa?

Tack sa mycket! /Erik

Medlem sedan nov. 20018 492 inlägg
#2

Du kör antal svar i ett eget fält ja.
Varje gång någon svarar så plussar man bara på 1.

/Mika3l

Medlem sedan juni 20008 205 inlägg
#3

Det är betydligt bättre att generera det varje gång man kollar (i.a.f. designmässigt). Hur man gör det beror på databasdesignen (men man lär väl använda någon COUNT(*) kan man tro).

Medlem sedan maj 200010 687 inlägg
#4

Håller med spango. Mycket dumt att lagra onödig data som finns på annat sätt...

Medlem sedan juni 20019 024 inlägg
#5

Håller inte med spango. :e
Det rör sig inte om så mycket data (1 st int fält per forum), och det går dessutom snabbare.

Medlem sedan maj 200010 687 inlägg
#6

Jag säger som John sagt tidigare att det kan bli fel om man inte kör transactions vilket jag inte tror många här gör...
Att lagra data så blir bara kluddigt i längden.

Medlem sedan juni 20019 024 inlägg
#7

Jo det håller jag med om.
Men om det bara rör sig om detta fallet så tycker jag man kan ha överseende med det.

Medlem sedan maj 200010 687 inlägg
#8

Det är en mycket äcklig design som får mig rysa! :o

Medlem sedan juni 20008 205 inlägg
#9

Update anomalies, bristande normalisering, redundans... *buäh*! :x

Medlem sedan dec. 19996 721 inlägg
#10

Nä, så kluddigt bör man inte bygga. Förvisso kan man ju övernormalisera en databas, men att lagra denna information i ett separat fält känns helt galet. Lita på att databasservern faktiskt är rätt bra på att optimera förfarandet.

Om man fortfarande tvekar så ska man testa prestandaskillnaden och fråga sig om databasstrukturen verkligen är värd att offra för en minimal skillnad.

/g

Medlem sedan juli 20013 378 inlägg
#11

Det kanns som om det skulle bli megalangsamt att rakna antalet svar for varje inlagg varje gang sidan laddas

Helt klart *kan* det bli tungt. Speciellt om du tänker dig att *många* tittar på din sida samtidigt, eller att varje tråd har *många* inlägg.

Update anomalies, bristande normalisering, redundans... *buäh*!

Javisst - men ibland måste man ta smällen att det blir grötigare att koda och svårare att hantera vid ändringar... t.ex. om man bygger system med höga prestandakrav. Ibland är det bättre att lägga all hantering av informationen i databasen vid *ändringstillfället* än vid *läsningstillfället*.

Att räkna poster i realtid, brukar jag ibland likna med följande:
Man skall skriva flera exemplar av samma sida på en skrivare, men man startar inte skrivaren förrän någon begär att få läsa sidan. Det är enkelt och strukturellt rent att koda algoritmen, och det fungerar bra vid "liten last", dvs få samtidiga intressenter. Risken är bara att man lastar ner systemet när många samtidigare besökare vill åt informationen samtidigt (tänk dig att 200 pers samtidigt vill åt sidan och det ramaskri den långa kön till skrivaren detta skulle ge ;) )

Att förlagra mellanresultat i egna celler är i "skrivarmetaforen" ovan att likna med att man skriver ut en massa sidor i förväg, så att de 200 personerna samtidigt kan ta varsin lapp direkt, utan att vänta på att skrivaren skall hinna spotta ur sig just deras exemplar. Nackdelen är då t.ex. att det kan bli lite mycket papper över när informationen på sidan ändras, dvs det är knöligare att koda beteendet, och det är kanske inte lika "strukturellt vackert" att tänka sig in i problematiken ;)

Med dessa liknelser i bakhuvudet går det att inse att man ibland måste skapa sidan och dess innehåll "på begäran" (när t.ex. innehållet ändras mycket oftare än folk tittar på det eller när det är personligt anpassat till varje individ) även om det medför att folk i värsta fall kan få vänta lite, och att man ibland måste förlagra (eller cachea ;) ) redundanta mellanresultat för att servern skall hinna med.

I system med "små" datamängder, är skillnaderna antagligen så små att det inte spelar någon roll vilken variant man väljer (om man har kapacitet över på sin server vill säga!) - och man kanske kan tillåta sig att räkna "direkt", men i system med stora datamängder, eller när systemet måste ligga på en nerlastad server, uppskattar man nog förr eller senare ett val mot prestandaoptimerade algoritmer och så mycket mellanlagringar man bara orkar peta in, även om det innebär att man inför redundans, långsammare uppdatering av ändringar eller mindre "snygga" strukturer...

Medlem sedan apr. 20011 418 inlägg
#12

hmmmm. Jag ar "still confused, but on a higher level".

Ett problem ar val att alla sajter har liten trafik i borjan och sedan vaxer de (forhoppningvis). Ska man da satta sig och koda om, nar sajten borjar bli stor?

Tack for alla svar an sa lange...

Medlem sedan juni 20008 205 inlägg
#13

Tja...

Ursprungligen av eriks Ett problem ar val att alla sajter har liten trafik i borjan och sedan vaxer de (forhoppningvis). Ska man da satta sig och koda om, nar sajten borjar bli stor?

Vissa menar att det är helt rätt att göra så.

Rules of Optimization:
Rule 1: Don't do it.
Rule 2 (for experts only): Don't do it yet.

- M.A. Jackson

More computing sins are committed in the name of efficiency (without necessarily achieving it) than for any other single reason - including blind stupidity.
- W.A. Wulf

We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.
- Donald Knuth

The best is the enemy of the good.
- Voltaire

(källa)
Observera att det där är snubbar som verkligen kan sina saker.

261 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)