我有一个产品列表服务,它将为登录用户提供产品列表,列表被分页,每页有10个产品。我使用MySQL LIMIT查询实现了这个分页。
最近,我得到了将其与关联服务集成的要求;该服务将提供与当前登录用户相关的产品属性。我需要根据与用户相关的信息对产品进行排序。
var page_no = 0;
var url = "https://relevancy-service-url"
var query = "SELECT * FROM products LIMIT 10 OFFSET page_no;"
var product_list = query -> fetch
var relevent_attributes = api -> get(url, user_id)这里,relevent_attributes是一个数组,它包含以下格式的项:
[attribite_1 : 40, attribute_2: 20, attribute_3: 10, attribute_4: 3]这里的键是属性名,值是排名。根据属性排序,我需要对产品列表进行排序。
对这个列表进行排序的最好方法是什么?
发布于 2022-04-14 08:10:28
分页是排序后需要发生的事情。如果要先分页然后排序,则只对当前页进行排序,这不是您想要的。
其次,一般性能建议您希望在数据库服务器上进行分页,而不是在内存中;只是为了避免加载所有数据,然后再过滤其中的大部分数据。
这导致了一个不可避免的结论,即在获取数据之前必须事先知道排序,因为该查询需要包括特定的排序顺序。
https://softwareengineering.stackexchange.com/questions/438059
复制相似问题