我正试图围绕 wordpress 帖子的排名功能。
我有一个包含数千个帖子的自定义帖子类型。这些帖子中的每一篇都有称为分数(数字)的元数据。我想根据分值对所有这些帖子进行排名。因此 post_id 和 score 是我正在寻找的两个值。帖子的排名位置将在我网站的各个地方使用。
现在,正确和最有效的方法是什么?我是不是该:
只需获取所有 post_ids 和分数并将它们存储在一个数组中。按分数对数组进行排序,得到所需的 postID 在数组中的位置,即排名。
创建一个单独的表,用 post_id 和分数集填充它,然后对表进行排序。每次帖子和度假村中的分数发生变化时更新此表。
创建一个单独的表,用 post_id 和分数集填充它并对表进行排序。只定期更新(如每 30 分钟一次)以降低负载?
我需要的是在每个帖子中显示分数,并且还有一个排名小部件使用排名数据。因此,如果数据始终是最新的(调整后的分数 -> 排名更新),那就太好了。但是,如果这会在数据库/服务器上造成沉重的负载,那么如果数据不是最新的,而是 X 分钟前的数据,我也可以。
由于我对数据库还很陌生,我很难弄清楚不同方法会产生什么负载。如果有人能在正确的方向上戳我,那就太好了。