我有一张ID和KPI这样的表
+----+---------------------+------------+--------+
| id | created_at | page_views | shares |
+----+---------------------+------------+--------+
| 1 | 2015-02-25 07:24:50 | 10 | 3 |
| 2 | 2015-04-22 13:48:46 | 40 | 1 |
| 3 | 2014-09-17 15:26:51 | 28 | 5 |
| 4 | 2014-08-09 16:27:48 | 149 | 2 |
| 5 | 2015-01-21 15:56:30 | 3 | 1 |
+----+---------------------+------------+--------+
我想按照
的方式制作排名算法SELECT id FROM pages ORDER BY (pages.page_views + pages.shares * 40) / (NOW() - created_at);
但我觉得随着KPI和主菜数量的增加,这种情况无法扩展。 有没有办法构建我的表,以便随着时间的推移使用降低分数的KPI有效排名?
答案 0 :(得分:2)
我会添加pageranking
列并使用批处理作业定期更新(每天?)。
这将提供良好的搜索性能,但代价是使用稍微过时的网页排名。