Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Các thuật toán xếp hạng của Reddit và Hacker News được sử dụng như thế nào?

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thay đổi phông chữ trong MySQL Workbench

  2. Hướng dẫn thiết kế cơ sở dữ liệu cho sự kiện lịch và lời nhắc trong MySQL

  3. Làm cách nào tôi có thể sử dụng nếu tồn tại để tạo hoặc giảm chỉ mục trong MySQL?

  4. Xóa các hàng trùng lặp khỏi bảng

  5. Tạo bản sao lưu vật lý của Cơ sở dữ liệu MariaDB hoặc MySQL của bạn