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存储的话,虽然一行也能存,比如:定义name、age、height、parent、friend这几列,parent和friend存储JSON字符串,但这样的话也只是为了存而存,不太合适。
这样的数据使用Mysql存储,正常来讲应该是定义人员表,有
主键id、name、age、height、parent、friend这几列,然后parent和friend列存储人员表的主键ID比较合适。
而这种数据使用MongoDB存储最合适了,直接存为一个文档。