zoukankan      html  css  js  c++  java
  • MongoDB Data Model 浅谈

    MongoDB 对于数据的 schema 要求很灵活

    与 MySQL 相比,collection 并不会强制文档的结构。(MySQL 在定义表时, 需要指定有哪些字段、类型、展示长度等)

    因此,插入数据到 MongoDB 非常灵活。

    同一个 collection 中可以有结构不同(字段不同)的文档(通常来说,文档结构还是相近的)。

    MongDB 适合半结构化/非结构化的数据,适用场景为大数据分析,允许数据不那么精确;

    MySQL 适合结构化的数据,支持数据引擎插拔;5.6+ 默认引擎为 InnoDB,支持事务。

    MongoDB 有两种 Data Model:

    1. Embedded
    2. Reference

    1. Embedded

    反范式(denormalized).

    用关系型数据库中的范式来看,违反了第一范式(1NF,属性不能拆分)。

    增加了冗余,查询时不用连表。

    2. Reference

    类似外键(foreign key)。

    符合范式(normalized)。

     

    MongoDB 在确定 data model 时,需要考虑两点要素:

    1、data 本身的特征;

    2、MongoDB 本身的特征。

    不同的 data model 会给应用带来不同的结果,比如:更高效的查询、更高的插入/更新吞吐量、更好的负载。

    如果更新会频繁地造成文档增长,考虑使用 reference 而非 embedded。

    读多写少,考虑使用 embedded,提高查询效率。

    参考资料:

    https://docs.mongodb.com/manual/core/data-models/

  • 相关阅读:
    JSP九大内置对象的作用和用法总结(转)
    Java web的几种异常处理 (转)
    response.getWriter().write()与out.print()的区别(转)
    【JavaWeb】Session(转)
    java web中cookies的用法 转
    1123
    1120
    jsp 内置对象
    include与jsp:include区别
    11.24作业1
  • 原文地址:https://www.cnblogs.com/huangzejun/p/8882363.html
Copyright © 2011-2022 走看看