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