数据库主流分类:
非关系型数据库(Nosql database)
关系型数据库(relation database management system)

mysql概述
mysql采用table和结构化的sql语句来处理数据,需要预先定义数据结构schema,并定义table中数据字段的关系
相关信息可以保持在不同的表中,通过join的形式保持彼此关联。

mongodb概述
mongodb采用类JSON的document来存储数据
相关信息可以采用灵活的数据结构存储在一块,所以查询效率高。
采用动态数据模型schema,不需要预先定义表的数据类型和字段名

mongodb让数据结构更加层级化,因而存储数组等复杂数据结构。在同一个集合collection中,文档document对字段也没有强约束,因此更容易设计差异化的数据结构。

mongodb和mysql语句对比



1 //mysql
 2 INSERT INTO users (user_id,age,status)
 3 VALUES('bcd001',45,'a')
 4 SELECT * FROM users
 5 UPDATE users SET status='C'
 6 WHERE age>25
 7 
 8 //mongoDB
 9 db.users.insert({
10 user_id:'dcb001',
11 age:45,
12 status:'A'
13 })
14 db.users.find()
15 db.users.update(
16 {age:{$gt:25}},
17 {$set:{status:'C'}},
18 {multi:true})



 

MongoDB对Mysql的优势
在MongoDB开发下,documents的映射关系更加贴合OOP的编程语言,减少了orm给应用带来的复杂性。由于MongoDB的数据类型灵活性让schema的扩展可以轻松的适应业务逻辑。可以轻松实现分布式数据中心和高延展性。