问题是:api接口,是一个文章列表,然后文章有置顶功能,排序方式是 置顶,置顶时间,添加时间。由于数据更新较快,如果按正常的页码分页的话,会出现数据重复的情况。之前没有置顶的时候会按照最后的那一条文章的添加时间来分页,即addtime<timestamp。加上置顶的话顺序就乱了,这种应该怎么解决比较好?
问题是:api接口,是一个文章列表,然后文章有置顶功能,排序方式是 置顶,置顶时间,添加时间。由于数据更新较快,如果按正常的页码分页的话,会出现数据重复的情况。之前没有置顶的时候会按照最后的那一条文章的添加时间来分页,即addtime<timestamp。加上置顶的话顺序就乱了,这种应该怎么解决比较好?
你把置顶的文章放在缓存中或者另一张表中(文章表也有置顶文章的数据),那么你先在这边取置顶文章,然后再按之前最后一条文章的添加时间来分页,当然增加过滤条件非置顶文章。这样性能会快很多,尤其是有对“添加时间”栏位做了索引。
2 回答1.5k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
2 回答871 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
2 回答930 阅读
1 回答912 阅读
1 回答841 阅读
排序规则
不是连续的分页的时候不要用
addtime<timestamp
,直接用limit
分页即可。数据量小的情况下,limit不慢,假设你一页10条,100页才1000条,这个时候可能性能有一点点影响。但是 我不觉得有哪些人蛋疼翻100页的