Tôi đã triển khai phiên bản SQL của thuật toán xếp hạng của Reddit cho trình tổng hợp video như sau:
SELECT id, title
FROM videos
ORDER BY
LOG10(ABS(cached_votes_total) + 1) * SIGN(cached_votes_total)
+ (UNIX_TIMESTAMP(created_at) / 300000) DESC
LIMIT 50
cache_votes_total được cập nhật bởi một trình kích hoạt bất cứ khi nào một phiếu bầu mới được thực hiện. Nó chạy đủ nhanh trên trang web hiện tại của chúng tôi, nhưng tôi đang có kế hoạch thêm một cột giá trị xếp hạng và cập nhật nó bằng cùng một trình kích hoạt như cache_votes_total cột. Sau khi tối ưu hóa đó, nó phải đủ nhanh cho hầu hết các trang web có kích thước.
chỉnh sửa:Thông tin thêm tại Thuật toán độ phổ biến của Reddit trong SQL