您的位置:首页 > 数据库 > Mongodb

第六课 MongoDB 索引

2015-10-10 20:48 375 查看
1.课程大纲
   


    
   


        本课时首先会介绍索引的概念,然后会详细介绍索引的类型,将重点介绍单字段索引、复合索引、多键索引以及哈希索引的概念以及使用时需要注意的事项,最后将演示如何使用这些索引。

         1.MongoDB 索引的类型
         2.MongoDB 索引的属性
         3.MongoDB 索引的管理

2.课程简介

 首先来看数据库索引的基本概念,数据库索引是对数据表中一列或多列的值进行排序的一种数据结构,使用索引可以快速访问数据库表中的特定信息。
 数据库索引与书籍索引的功能类似,书籍有了索引就不需要翻查整本书,数据库借助索引可以先在索引中查找,在索引中找到条目后,就可以直接跳转到目标文档的位置,这能够使查找速度提高几个数量级。
 不使用索引的查询称为全表扫描,也就是说服务器必须将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录,这个处理过程与我们在一本没有索引的书中查找信息很像:从第一页开始一直读完整本书,查完一整本书才能找到要查询的结果。通常来说,应该尽量避免全表扫描,因为对于大集合来说,全表扫描的效率非常低。我们应该在集合中建立索引,然后在索引中找到符合查询条件的索引值,最后通过保存在索引中的指针快速找到表中对应的记录。下面来看MongoDB中的索引。
 MongoDB 索引几乎和关系型数据库的索引一样,绝大数优化关系型数据库索引的技巧同样适用于MongoDB。因为索引数据使用的数据结构大体是相同的,它们都支持单字段索引、复合索引,地理空间索引以及全文索引等。但它们又有所不同,例如,由于MongoDB 可以存储数组类型的数据,它可以为数组元素建立多键索引。此外,MongoDB
中稀疏索引的概念与关系型数据库也有是不同的。
使用索引除了可以提高查询速度外,还可以节省排序时需要的内存资源。在上节课介绍 MongoDB 游标时已经提到,MongoDB 的查询结果是分批来返回的,但是如果要对查询结果进行排序的话,所有的查询结果都需要加载到内存中,当结果集很大时,会严重的消耗内存。所以,如果在经常需要排序的字段上建立索引的话,就不用在内存中进行排序,这样不仅可以提高查询的效率而且还可以提高内存的利用率。

       MongoDB 将所有的索引信息保存到 system.indexes 集合中,数据库默认为为集合的_id字段创建索引。在 MongoDB Shell 中使用这条 find 命令,来查看数据库中创建的所有索引。
       MongoDB 提供了多样性的索引支持,可以创建多种类型的索引,包括单字段索引、复合索引、多键索引、哈希索引等,而且针对每种类型的索引还可以设置不同的属性,能够实现更多复杂的功能。

3.详细课程视频

   视频课程链接如下:[MongoDB
索引] 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MongoDB 索引