View Full Version : Räkna rader eller egen post?
Vilket går snabbast om man t.ex. gör ett forum och vill kunna visa antal inlägg som en medlem gjort.. är det snabbare att räkna alla rader i databasen där inläggaren heter "namn" eller är det bättre att varje gång man gör ett inlääg addera 1 till en speciell post för antal inlägg?
Ganska säker på att det senare är snabbare men hur mycket skilljer det?
//M@rtin
Hello,
Den senare använder jag mig av, dvs uppdatera ett fält i databasen med 1 så fort den personen har gjort ett inlägg.
Prestandan blir ju sämre och sämre om personen postar många inlägg och adderar du den så finns den ju tillgänglig lite snabbare.
En sak till med prestanda så beror det ju på server en hel del såsom bestyckning och konfiguration.
cya,
PatrikB
------------------
=================================
** ZWGdesign (http://zwgdesign.webhostme.com) **
=================================
emission
2000-08-15, 19:34
Visst kan det gå snabbar att kolla ett värde i en kolumn, men databasintegriteten flyger all världens väg, dvs. om man raderar ett inlägg så blir siffran fel.
Jag säger inte att det är fel, men man måste vara medveten om det.
Det bäste vore väl då att schemalägga nån asp fil en gång i månaden tex som uppdaterar samtliga värden, mitt i natten på en onsdag tex.
Då läser man igenom alla poster och uppdaterar fältet.
Andreas
LordJens
2000-08-17, 07:30
Ville bara protestera lite mot emissions kritik.
När man raderar ett inlägg är det ju bara att dra bort ett ur posten.
emission
2000-08-17, 09:14
Det är ju det jag säger. Man får självklart göra så om man vill, men databasintegriteten ryker all världens väg.
Håller med Emission. Att tänka rätt vad gäller databasintegritet från början lönar sig enormt när man längre fram tar sig an lite "större" projekt.
<INTERNT SKÄMT>
Everything depends upon the key,
the whole key,
and nothing but the key,
so help me Codd.
</INTERNT SKÄMT>
;)
[Redigerat av cf den 17 aug 2000]
emission
2000-08-17, 15:05
Så sant CF ;)
vBulletin® v3.8.6, Copyright ©2000-2013, Jelsoft Enterprises Ltd.