|
SQL baze podataka - Sponzor: Baze-Podataka.net MySQL, MSSQL, Oracle, Access, ODBC. Ako imate problem brže i preciznije ćete dobiti odgovor ako priložite strukturu tabela ili skript koji kreira tabele i puni ih test podacima umesto što to problem opisujete samo rečima. Sponzor: Baze-Podataka.net - Blog o bazama podataka |
|
Alati teme | Način prikaza |
|
05. 02. 2009. | #1 |
Igor Marinović
Expert
|
Ako je istina da svaki korisnik u proseku ima oko 200 prijatelja, to znači da svaki korisnik u proseku ima 200 * 200 prijatelja od prijatelja.
To je 40.000 podataka po korisniku, što znači 40.000 integer brojeva po korisniku, što nije strašno za keširanje. Naročito što je u realnom svetu ta brojka mnogo manja, iz dva razloga: 1. Obično se radi o krugu prijatelja, tako da je vrlo često prijatelj tvog prijatelja i tvoj prijatelj, pa se radi o mnogo manjoj brojci od 40.000 2. Ovo treba da se primeni samo na one koji su uključili ovu opciju, a tih je sigurno vrlo malo. Ovi podaci se ne menjaju često, jedino ako neko nekome postane, ili prestane biti prijatelj. Pročitao sam par interesantnih tekstova o facebooku ispod haube, npr o njegovom skalabilnom log sistemu koji je otišao u open source(!), te o pametnijem iskoristavanju memcacheda. Memcached inace svakome preporucujem. Spasao me je dosta puta.
__________________
marinowski.com |
"Hvala" marinowski za poruku: |
06. 02. 2009. | #2 |
Banned
Knowledge base
Datum učlanjenja: 01.07.2005
Poruke: 1.598
Hvala: 206
140 "Hvala" u 89 poruka
|
1. Obično se radi o krugu prijatelja, tako da je vrlo često prijatelj tvog prijatelja i tvoj prijatelj, pa se radi o mnogo manjoj brojci od 40.000
&@jablan zato i trazis da je neko distinct. Inace tih 40000 je samo deo upita, previse ste uprostili. Znaci imas stranu na kojoj ti se izlistavaju downloadi. I pravis query da bi izlistao recimo 20 zadnjih downloada koje odredjeni korisnik moze da vidi. To je u najboljem slucaju 20*200*200. Inace pre nego sto se db ogranici na tih 40k (da uzmemo jednostavniji slucaj), mora da se uradi distinct na joinu izmedju user_friends i users, a distinct nemoze da se radi ne potskupu. 2. Ovo treba da se primeni samo na one koji su uključili ovu opciju, a tih je sigurno vrlo malo. Ta opcija je po defaultu. |
06. 02. 2009. | #3 |
Banned
Knowledge base
Datum učlanjenja: 01.07.2005
Poruke: 1.598
Hvala: 206
140 "Hvala" u 89 poruka
|
@marin thanks za fb log nisam cuo za to
|
06. 02. 2009. | #4 |
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
|
Izvini, ja još uvek ne kapiram što si zapeo za taj distinct?
Kôd:
jablan=# select * from korisnici; id | ime ----+------ 1 | pera 2 | mika 3 | zika 4 | laza (4 rows) jablan=# select * from slike; id | korisnik_id | ime ----+-------------+--------- 1 | 1 | slika 1 2 | 2 | slika 2 (2 rows) jablan=# select * from prijatelji ; korisnik_1 | korisnik_2 ------------+------------ 1 | 2 1 | 3 2 | 4 2 | 1 3 | 1 4 | 2 (6 rows) Kôd:
jablan=# select count(*) from prijatelji p1 inner join prijatelji p2 on p1.korisnik_1 = p2.korisnik_1 and p1.korisnik_2 = 1 and p2.korisnik_2 = 4; count ------- 1 (1 row) Kakav distinct, kakvi bakrači... |
06. 02. 2009. | #5 |
хардвераш
Qualified
Datum učlanjenja: 04.01.2007
Lokacija: Маунтин Вју, САД
Poruke: 117
Hvala: 4
25 "Hvala" u 10 poruka
|
А можда за тај део посла користе објектно-оријентисану базу података?
ф
__________________
Рад је створио човека. Рад ће га и уништити. |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
slanje iphone-a iz USA u Srbiju - pomoc prijatelja oko detalja pliz! | logoholik | Opušteno | 3 | 23. 04. 2010. 16:49 |
DPT nedostupan sa mojih IPova | misk0 | Obaveštenja, predlozi i pitanja | 5 | 30. 05. 2008. 13:06 |