MySQL和MongoDB数据存储方式的区别

93 阅读1分钟

MySQL是行存储数据库,数据是一行一行的,一行有多列。
MongoDB是文档式存储数据库,使用BSON文档存储数据。

最直观的例子感受下差异:
如下的人员信息数据:

{
  "name":   "小明",
  "age":    18,
  "height": 175
}

使用MySQL和MongoDB都能很好的存储

但是,如下的人员信息:

{
  "name": "小明",
  "age": 18,
  "height": 175,
  "parent": [
    {
      "name": "xxx",
      "age": 35,
      "height": 175
    },
    {
      "name": "xxx",
      "age": 35,
      "height": 160
    }
  ],
  "friend": [
    {
      "name": "小刚",
      "age": 18,
      "height": 175
    },
    {
      "name": "小王",
      "age": 18,
      "height": 175
    }
  ]
}

使用MySQL存储的话,虽然一行也能存,比如:定义nameageheightparentfriend这几列,parentfriend存储JSON字符串,但这样的话也只是为了存而存,不太合适

这样的数据使用Mysql存储,正常来讲应该是定义人员表,有主键idnameageheightparentfriend这几列,然后parentfriend列存储人员表的主键ID比较合适。

而这种数据使用MongoDB存储最合适了,直接存为一个文档。