[ Valerij Zajcev @ 03.02.2014. 19:01 ] @
Tabela: UserActivities - cuva podatke o tome sta su korisnici uradili. Primer: Korisnik John je promenio profil, Korisnik Doe je napisao kontar tu i tu i sl. Sada korisnici mogu biti prijatelji i korisnik moze da vidi sve aktivnosti njegovih drugara. Znaci ovde bi isao klasican upit: Code: SELECT TOP 50 * FROM UserActivities WHERE ActivityOwner IN (1,2,3...n) Ova tabela je napravljena tako da ne radi nikakve JOIN-e (zbog performansi). Ova tabela u svakom smislu rusi normalizaciju jer sadrzi polja ko je napravio activity, ime/prezime, kada, koji je tip, koji je ID itema (npr. Slika, Komentar, Post ... sve u posebnim tabelama). Na osnovu ovih podataka se na stranici izlistavaju aktivnosti. Jedna aktivnost je kratko opisana na osnovu prethodnog upita i kada user klikne na link tek onda se vrsi upit ka bazi da se uzme detalj o odredjenoj aktivnosti. Ovo izmedju ostalog moze da stvori dodatne probleme npr. Ako John Promeni ime u Jimmy onda mora da se updatuje tabela sa aktivnostima. Ono sto mene zanima je sledece. Ovakva baza ubrzo moze da postane "usko grlo" npr: Code: 10.000 usera > Svaki user po 500 aktivnosti = 5.000.000 zapisa. Sto znaci da baza moze relativno brzo da poraste toliko da home page ne moze da se ucita. U bazama sam malo tanji kada su performanse u pitanju. Moje pitanje je: Posle koliko zapisa mogu da ocekujem da pocnu da mi se javljaju problemi? Jer ne zelim da dodjem u situaciju da useri sutra ne mogu da otvore sajt. Tehnologije: ASP.NET (ado.net nista ORM-vi) + MSSQL Server + Hosting okruzenje Shared. [Ovu poruku je menjao Valerij Zajcev dana 03.02.2014. u 20:56 GMT+1] |