• MongoDB快速入门教程 (3.2)


    3.2.索引

    索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,建立索引,通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录,这种扫描全集合的查询效率是非常低的,特别是在数据量特别大的时候,话费的时间就非常的多

    举个例子:目前我的一个集合中有170多万条数据,我们在没有建立索引的情况下测试一下查询时间

    db.course.find({"name": "mongodb入门8888"}).explain("executionStats")
    

    执行时间:

    接下来,我们创建索引:

    //语法: db.集合名称.createIndex({})
    db.course.createIndex({name:1})
    

    createIndex方法中,name表示查询的字段,1表示升序,-1表示降序

    创建好索引后,我们再次执行查询

    db.course.find({"name": "mongodb入门8888"}).explain("executionStats")
    

    以下是执行时间:

    3.3.关系型数据库中表的关系

    3.3.1.一对一关系

    一对一的关系比较简单,例如:一个人只有一张身份证,一张身份证只对应一个人

    数据库中表关系举例:

    一张user表对应一张driver表,意味着我们可以通过user表中的uid去查询driver表中和这个uid相同的这个人的驾驶证信息

    3.3.2.一对多关系

    一对多的关系简单的说就是一个对应多个,例如:一个母亲可以有多个儿女,但是每个儿女只对应着一个亲生母亲

    数据库中表关系举例:

    在上面这种应用场景中,一张category表和goods表关联,关系为一对多关系,一个分类下面有多种商品,一种商品只放入一个分类,我们可以根据category中的分类id去goods表中查询出当前分类下到底有多少商品,同时也可以用goods表中的cate_id来查询出当前分类的一些信息

    3.3.3.多对多关系

    多对多关系举例:一个学生可以选择多门课程学习,例如,语文、数学、计算机,同时一门课程也可以有多个学生来学习,例如,数学课程有50人学习,英语课程有100人学习等

    数据库中表关系举例:

    多对多关系在数据库中通常需要第三张表来存储对应关系,上面的图中,我们使用student_course来存储关系,在这张表中,sid和cid分别是学生表中的id和课程表中的id,当我们想知道一个学生选择了多少门课程的时候,我们只需要在student_course表中,根据sid来查询出对应的cid就可以了

    螺钉课堂视频课程地址:http://edu.nodeing.com

  • 相关阅读:
    Linus大神Win 7发布当天踢馆恶搞
    使用OpenSSL生成CSR文件,并申请全球通用SSL证书
    看Google的1000万.不是美元..是1000万台服务器!
    常见病毒 木马进程速查表
    GeoServer 2.0 正式版发布
    linux LiveCD 制作笔记
    开源WEB服务器lighttpd 1.4.24发布
    Nginx 的 server_names_hash_bucket_size 问题
    商业开源厂商最爱GPL,GPL并不能保证软件自由
    MySQL update回滚 mysqlbinlog回复数据
  • 原文地址:https://www.cnblogs.com/dadifeihong/p/12048320.html
Copyright © 2020-2023  润新知