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