Chach or not chache database..

Tags:    .net


Hej alle sammmen
Jeg er gang med lave en webapplikation som den blå avis dba.dk


Men jeg er kommet i tvivl om man jeg skal chache data,som vises i resusltat listen efter en søgning.

Jeg viser resultatet på Listview control ved fødre dem med en liste som er dannet udfra data fra databasen..

Hvad gør man .. hvilken teknink benytter man hvis man skal vise store list af produkter som dba.dk qxl.dk osv ?




2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Her er lige noget hurtigt .NET kode til at cache med, frit fra hukommelsen, så jeg garanterer ikke at det virker :-), her er der søge alle poster.

Fold kodeboks ind/udKode 


Men tag og trace din side og se om det er et problem (om det tager lang tid i forhold til andet du laver) og når/hvis performance bliver et problem så implementer cache... og først når det er et problem



Indlæg senest redigeret d. 13.01.2010 09:03 af Bruger #2730
Jeg går ud fra at du mener caching, som i at midlertidigt gemme data når du henter det ud fra databasen.

Nu er jeg ikke inde i .NET, så jeg kan ikke fortælle dig præcis hvordan du gør her, men koncepterne bag er relativt sproguafhængige.

Typisk cacher man data i et hurtigt mellemlag, enten mellem webserver og klient, eller mellem applikation og database. Typisk vælger man at cache fordi ens dataset er så stort at en søgning tager et relativt langt stykke tid, eller fordi antallet af gange der søges i det er højt.

Problemet med at cache søgeresultater er dog at du har mange personer som søger på forskellige søgestrenge, og så får forskellige resultater. Caching vil nok her hjælpe dig beskedent.

Mange af søgemaskinerne på de store sites benytter specialiserede "søgeservere" som f.eks. Sphinx, som jeg ved blandt andre ThePirateBay bruger til at søge blandt deres ganske store dataset, mens de stadig bibeholder god performance.

Hvis man vil cache ved søgeresultater er det nok bedre at cache de individuelle datarækker som man henter ud fra sin database, vil jeg gætte på.



t