V2EX CandyMuj 的所有回复 第 1 页 / 共 2 页
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX    CandyMuj    全部回复第 1 页 / 共 2 页
回复总数  25
1  2  
@auh #47 万分感激,我还一直在分页这里面琢磨。。。 实际上这里就是分批次拿数据,都不应该叫做分页了!
@auh 谢谢
@fkname #48 感谢,是个很好的办法!
@YouLMAO #25 并且,我这是一篇求助帖,而不是教程帖。
@lldld #29 暂时先记录所有吧,先出一个可以用的,然后再优化吧,这种不记录全部 id 的想法很棒!
@lldld 感谢,好的想法,学习到了! ^^
@xyjincan #26 最开始就是打算的这个方案,可能我当时技术欠缺或者没想到如何优化性能,然后就不打算采取这个方案。现在有了性能优化方案以及整个查询逻辑的细节处理方法,就可以用啦。

问题不描述清楚,我光解释就要解释半天。
@hma 后续会考虑这方面的优化,谢谢!
@yzbythesea #28 关于用户一般就是存个 token,缓存一些用户数据,直接用 Redis 当用户表就没玩过了
@zieglar #24 这样确实也可以,谢谢你的思路。
如果把数据全部维护到 Redis,个人不太喜欢这样的处理方式。
处理方式挺不错的,如果后续有其他需求可以用到这个思路!
@yzbythesea #28 我没有这样处理过
@YouLMAO 我说了这是一个类似随机的方案,因为直接采取随机的话,会出现重复的数据,不满足需求。如果想实现随机+不重复 你可以在取数据的时候进行随机获取并踢除已看视频,如果数据不足一页就一次查询多页,查询多页需要注意一个问题,看第 23 楼
@CandyMuj 还有一点,记录历史记录的时候是每次查询都记录视频 id,但是查询由于是分页的,在查询的时候需要加一个限制 historyId <= 第一页查询时的最大历史记录 id,不然就会出现下面的问题
有数据 id:1 2 3 4 5 6 7 8 9 10
首次查询不剔除数据
第一页:limit 0,2 => 1 2
记录看过的:1 2
第二页查询:
此时就剔除 1234:3 4 5 6 7 8 9 10
查询:limit 2,2 => 5 6

就会导致有些数据是被直接跳过了
@CandyMuj 还有一点,记录历史记录的时候是每次查询都记录视频 id,但是查询由于是分页的,在查询的时候需要加一个限制 historyId <= 第一页查询时的最大历史记录 id,不然就会出现下面的问题
有数据 id:1 2 3 4 5 6 7 8 9 10
首次查询不剔除数据
第一页:limit 0,2 => 1 2 3 4
记录看过的:1 2 3 4
第二页查询:
此时就剔除 1234:5 6 7 8 9 10
查询:limit 2,2 => 7 8

就会导致有些数据是被直接跳过了
@yzbythesea 这种方式用 sql 查询的时候会用到 in(id1,id2,ids...),这样的话不走索引的,或者有什么方法可以替代 in 么?而且这种操作一般都不会在 app 端做处理的。
@ylrshui 笨方法有时反而是最有效的方法,只要优化的好也能成为好的方法,哈哈哈!
@rrfeng 不过维护两个 lastid 这个想法挺不错的,是一个好的想法,谢谢。
不一一回复了,感谢所有回复的朋友,好的方案我会学习一下的,谢谢啦! ^^
@rrfeng 谢谢,最开始就是这个,主要问题就在于这个数据的顺序会变,如果顺序不变就没问题 可以看看 14 楼的方案
@zieglar 谢谢,和一楼的方法类似 需要数据在 redis 才好操作,因此筛选出 id 后使用 sql 操作存在性能问题,应该以 msyql 为核心
1  2  
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2809 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 80ms UTC 14:35 PVG 22:35 LAX 07:35 JFK 10:35
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86