扫码关注官方订阅号
目的: 在超过10万条数据 随机 选取一条数据。我的方法: data=db[item].find().skip(random_num).limit()遇到问题: 耗费时间很长才能随机找到数据。根据profile测试,是因为find().怎么优化?
建议在随机取得时候根据具体的查询条件来做。不要直接通过skip的方式。
你知道mongo的聚合框架不?查查吧,高性能的关键。只要不是跨库,不是引用,都能用。
首先在item上建立索引,可以大大提高查询速度。另外可以把随机数条件变成具体查询条件(用随机数构造)。另外,聚合框架对你提出的这种简单地find查询并没有什么帮助。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
建议在随机取得时候根据具体的查询条件来做。不要直接通过skip的方式。
你知道mongo的聚合框架不?查查吧,高性能的关键。只要不是跨库,不是引用,都能用。
首先在item上建立索引,可以大大提高查询速度。另外可以把随机数条件变成具体查询条件(用随机数构造)。另外,聚合框架对你提出的这种简单地find查询并没有什么帮助。