Pregunta

He estado buscando en los algoritmos utilizados popularidad en sitios como Reddit , Digg e incluso Stackoverflow .

Reddit algoritmo:

t = (time of entry post) - (Dec 8, 2005)
x = upvotes - downvotes

y = {1 if x > 0, 0 if x = 0, -1 if x < 0)
z = {1 if x < 0, otherwise x}

log(z) + (y * t)/45000

Siempre he realizado pedidos sencilla dentro de SQL, me pregunto cómo debo tratar con tales pedidos.

En caso de que se utiliza para definir una tabla, o puede que construir un SQL con el orden dentro de la fórmula ( sin obstaculizar el rendimiento )?

También me pregunto, si es posible utilizar varios algoritmos de ordenación en diferentes ocasiones, sin incurrir en problemas de rendimiento.


Estoy usando Django y PostgreSQL.

La ayuda sería muy apreciada! ^^

¿Fue útil?

Solución

Se debe almacenar en caché tu índice de popularidad en una columna propia y actualizarlo cuando los valores subyacentes cambio. También debe configurar un índice de base de datos en esa columna. Si a continuación, también en caché el resultado de sus la mayoría de las consultas comunes, que tomó las medidas más eficaces para el rendimiento de las consultas de popularidad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top