Autor Zpráva
Foi
Profil
Jak například řadí takový facebook, twitter svoje statusy?

Chceme propočítávat index užitečnosti a záleží nám na výkonnosti. Napadl nás jeden nápad: Začne se na nějaké začáteční int hodnotě a co hodinu (přes cron nebo to lze udělat v databázi) se bude snižovat o určenou hodnotu. Zvyšovat se bude na základě různých aktivit (zhlédnutí, komentáře, ...). Řazení bude velmi rychlé, ale co ta spousta updatů?

Je to lepší, co se týče výkonnosti, než to propočítávat na každý dotaz? Doporučíte něco jiného?
tttt
Profil *
Jak například řadí takový facebook, twitter svoje statusy?
Určitě daleko komplikovaněji, než jak to chceš dělat :)

Chceme propočítávat index užitečnosti a záleží nám na výkonnosti.
Jde o to, aby se to rychle zobrazovalo nebo rychle počítalo? Tipuju to první, pak to jde uložit do cache a třeba každých pět minut obnovit. Náročnost výpočtu není pak moc důležitá, když se budou provádět jen jednou za x minut.

Začne se na nějaké začáteční int hodnotě a co hodinu (přes cron nebo to lze udělat v databázi) se bude snižovat o určenou hodnotu.
Odečítání není potřeba. Ulož si čas vytvoření a pak dopočítej podle času, kolik je potřeba odečíst. Když v dotaze nebude NOW(), ale aktuální čas zaokrouhlený třeba na hodiny, pomůže to cachování.

Doporučíte něco jiného?
Můžeš kouknout, jak to dělají (dělali?) na Hacker News, myšlenka je stejná, vzorec malinko jiný: medium.com/hacking-and-gonzo/how-hacker-news-ranking-algorithm-works-1d9b0cf2c08d
Foi
Profil
tttt:
Děkuji za hodnotnou odpověď.

S tím počítám, že to dělají komplikovaněji, ale mají to zároveň rychle za což asi může i cache :)

pak to jde uložit do cache a třeba každých pět minut obnovit
Když například má každý uživatel rozdílné zobrazení, tak by to bylo například 100 000 cache a aktualizace, což si myslím není dobrý nápad.

Odečítání není potřeba. Ulož si čas vytvoření ...
díky zkusím to promyslet :)

Na odkaz určitě mrknu
N71
Profil *
Vzhledem k tomu, že chceš podle té hodnoty řadit výsledky z databáze, je vhodné aby v ní byla už spočítaná. Takže bych volil spíš variantu hromadné opakované aktualizace toho indexu důležitosti.
Kajman
Profil
Foi:
Začne se na nějaké začáteční int hodnotě

Co použít double? Viz Nejčtenější za poslední týden

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0