mongodb(Index)
备忘mongoDb 索引的一些知识点。
1、索引是用以加速数据库查询的手段,在mongo中主要是采用B树的方式;
2、每个集合最多可增加64个索引,不建议增加过多索引,原因在于一是索引本身占用空间,二由于要维护一个B树的映射,增加索引后,数据库的增删改除了修改数据外,还要修改索引的数据结构,会影响效率;
3、mongo中采用db.user.ensureIndex({"name":1})的方式增加基本索引,1或者-1代表方向,即mongo内部采用什么样的顺序组织数据;
4、唯一索引,db.user.ensureIndex({"name":1},{"unique":true}),表示该索引字段唯一,默认的_id就是;此例中不允许同名;
5、复合唯一索引,db.user.ensureIndex({"name":1,"age":-1},{"unique":true})。此例中不允许同名且同年龄;
备注:当建立复合索引时,如果查询只用到其中一个字段,索引是不起作用的。
6、索引建立在每个数据库的system.indexes集合中,默认有_id索引;
7、索引可以修改,也可以删除,删除命令:db.runcommand({"dropIndexes":"user"},{"indexes":"*"}),删除集合user中全部索引;
备注:_id索引是无法删除的;
8、可以采用explain命令来查询SQL语句的效率,如db.user.find().explain();该命令会返回:
其中millis代表运行时间、cursor代表所使用的索引; 如果什么索引都没用,则显示BasicCursor
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)