数据库主流分类:
非关系型数据库(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的扩展可以轻松的适应业务逻辑。可以轻松实现分布式数据中心和高延展性。