几百万数据每次获取一个随机数据 我查询有用 oder_by(?) 还有获得范围内主键 id ,做 random ,但是由于我删除过很多数据,导致主键 id 并不连续,请问这个怎么处理 或者还有什么更好的方法
1 Herobs 2022-05-01 11:19:16 +08:00 via iPhone Postgres 支持 table sample |
![]() | 2 kran 2022-05-01 12:18:35 +08:00 via Android ![]() id = random(0, max_pk) select where pk >= #id limit 1 |
3 elboble 2022-05-01 13:22:11 +08:00 ''' num = 1 ret = MONGO_DB[db.lower()].aggregate([{"$sample": {"size": num}}]) ''' 效率高不高不知道了。 |
![]() | 4 disk 2022-05-01 14:35:56 +08:00 .raw(sql) 用 tablesmaple |
5 yonng 2022-05-01 14:36:16 +08:00 多生成几个随机主键一次查询返回(主键有索引查询应该比较快),降低获取不到数据的可能性。极端情况下一条都没有返回那就再查一次,比如直接 limit 10 然后从 10 条里随机选一条好了 |