mongodb ,上亿条数据怎么快速找一条

时间:2022-11-28 23:27:51
mongodb ,上亿条数据怎么快速找一条?
 var filter = Builders<Dating>.Filter.Eq(a => a.Id, ObjectId.Parse(id));
            var cursor = cols.Find(filter);

            return cursor.FirstOrDefault();
这样会很慢?

5 个解决方案

#1


你代码没写错,问题是现在快慢不在代码层级了,而是在数据库层次了,你应该尝试去优化mongodb,比如增加索引。
参考: http://docs.mongoing.com/manual-zh/core/indexes-introduction.html

#2


晕!

人家字段是使用字符串的,而且对于 Id 对应的字段名是 “_id”。你写的什么?

#3


你可以仔细看看基本的文档中的例子: https://docs.mongodb.org/getting-started/csharp/query/

虽然我不用这个驱动,不用这种编程方式,但是我看这个文档,一下子就看到人家的字段都写字符串类型的名字。而你写的什么啊?明显你是太不用心了哦。

#4


引用 3 楼 sp1234 的回复:
你可以仔细看看基本的文档中的例子: https://docs.mongodb.org/getting-started/csharp/query/

虽然我不用这个驱动,不用这种编程方式,但是我看这个文档,一下子就看到人家的字段都写字符串类型的名字。而你写的什么啊?明显你是太不用心了哦。

类里面有转换Id对应自增的,貌似有个属性可以做,类定义没贴出来...

#5


上亿的数据,我觉得需要拆分数据库,sql怎么优化,增加索引,效果都不是很大
根据某些类别,将大库分解成几个小库,然后单独建立表,映射类别和各个分解后的表之间的关系
先分解,然后操作时再优化和索引
还有,建议直接写sql语句,不写lambda,它最终还是转为sql语句提交给数据库服务器执行的,直接写sql就能省去这个转化

#1


你代码没写错,问题是现在快慢不在代码层级了,而是在数据库层次了,你应该尝试去优化mongodb,比如增加索引。
参考: http://docs.mongoing.com/manual-zh/core/indexes-introduction.html

#2


晕!

人家字段是使用字符串的,而且对于 Id 对应的字段名是 “_id”。你写的什么?

#3


你可以仔细看看基本的文档中的例子: https://docs.mongodb.org/getting-started/csharp/query/

虽然我不用这个驱动,不用这种编程方式,但是我看这个文档,一下子就看到人家的字段都写字符串类型的名字。而你写的什么啊?明显你是太不用心了哦。

#4


引用 3 楼 sp1234 的回复:
你可以仔细看看基本的文档中的例子: https://docs.mongodb.org/getting-started/csharp/query/

虽然我不用这个驱动,不用这种编程方式,但是我看这个文档,一下子就看到人家的字段都写字符串类型的名字。而你写的什么啊?明显你是太不用心了哦。

类里面有转换Id对应自增的,貌似有个属性可以做,类定义没贴出来...

#5


上亿的数据,我觉得需要拆分数据库,sql怎么优化,增加索引,效果都不是很大
根据某些类别,将大库分解成几个小库,然后单独建立表,映射类别和各个分解后的表之间的关系
先分解,然后操作时再优化和索引
还有,建议直接写sql语句,不写lambda,它最终还是转为sql语句提交给数据库服务器执行的,直接写sql就能省去这个转化