之前在做mongo数据库时,查询数据库中数据时需要分页查询,而我在采用分页查询时每次的查询语句是使用skip()和limit()来这样操作。
但是当数据量达到一定程度时,可以发现查询效率显著下降,主要是因为这种方法是通过查询时进行了一个遍历才skip的,所以随着数据量的增加,查询时间也是线性的增加的。
比如当我数据库中现在有35万条数据时,查询第一页(50条数据),用时平均在20ms,查询最后一页却用时780ms,如果不进行优化改进,当数据量更大时,查询效率也会更差。
改进主要是为现有的数据增加一个id索引,然后每次查询时通过find({id: {$gt: skip}})来做的(skip就是要跳过的页数)。