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