最近几年在开发互联网 Web 应用中,越来越多的企业在生产环境中从关系数据库(如 MySQL)迁移到非关系数据库(如 MongoDB)。
那么,企业这样做的动机是什么?为何开发互联网 Web 应用的企业要抛弃 MySQL,而青睐 MongoDB 呢?
关系数据库(如 MySQL)适合存储结构固定不变的数据(结构化数据),也就是二维表。但是,互联网中很多数据并不是结构化的,而是半结构化(如 XML 和 JSON)或非结构化数据(如文档、邮件、图片、音频、视频等),这些数据很难设计关系数据库表来存储。
关系数据库表超过一定的容量(如 10w 行记录),读写性能就会急剧下降,而互联网中每天都将产生海量的数据,这对关系数据库而言很容易出现性能瓶颈,而其关系数据库难以通过集群增加主机扩展以提升性能,维护困难
MongoDB 是为快速开发互联网 Web 应用而专门设计的一种 NoSQL 数据库
官网:https://www.mongodb.com/
**MongoDB 是一种通用的、基于文档的分布式 NoSQL 数据库 **,这种数据库比关系型数据库更 易于使用、易于扩展、更高的性能(由C++语言编写)
MySQL MongoDB 说明
database database 数据库
table collection(集合) 表/集合
row document(文档) 数据记录
primary key primary key 主键
fields fields 字段
index index 索引
table join 无 表的关系
特点:高性能、易部署、易使用,存储数据非常方便
MongoDB 的设计采用横向扩展,基于文档的数据模型使它能很容易地在多台服务器之间进行数据分割。如果一个集群需要更大的存储容量,只需要向集群添加新服务器,MongoDB 就会自动将现有数据向新服务器传送。
MongoDB 就是为大数据而生