MongoDB是什么
MongoDB是一款为web应用程序和互联网基础设施设计的数据库管理系统。MongoDB是NoSQL类型的数据库。
NoSQL泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。
MySQL是什么
MySQL是一个关系型数据库管理系统,MySQL 是最流行的关系型数据管理系统之一,在WEB 应用方面,MySQL是最好的RDBMS(Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。
索引
索引是特殊的数据结构,它以一种易于遍历的形式存储集合数据集的一小部分。索引存储一个或一组特定字段的值,按字段的值排序。索引项的排序支持有效的相等匹配和基于范围的查询操作。
MongoDB与MySQL对比
使用场景
MongoDB 是一种文档型数据库,由于它不限制数据量和数据类型,它是高容量环境下最合适的解决方案。由于 MongoDB 具备云服务需要的水平可伸缩性和灵活性,它非常适合云计算服务的开发。另外,它降低了负载,简化了业务或项目内部的扩展,实现了高可用和数据的快速恢复。 MySQL是一种关系型数据库,当应用程序需要把多个操作视为一个事务(比如会计或银行系统)时,关系数据库是最合适的选择。除了安全性,MySQL 的事务率也很高。实际上,MongoDB 支持快速插入数据,而 MySQL 相反,它支持事务操作,并关注事务安全性。总体上看,如果项目的数据模式是固定的,而且不需要频繁变更,推荐使用 MySQL,因此项目维护容易,而且确保了数据的完整性和可靠性
术语和概念
MySQL中的许多概念在MongoDB中具有相近的类比。本表概述了每个系统中的一些常见概念。
MySQL | MongoDB |
---|---|
表 | 集合 |
行 | 文档 |
列 | 字段 |
joins | 嵌入文档或者链接 |
特色对比
MySQL | MongoDB | |
---|---|---|
丰富的数据模型 | 否 | 是 |
动态Schema | 否 | 是 |
数据类型 | 是 | 是 |
数据本地化 | 否 | 是 |
字段更新 | 是 | 是 |
易于编程 | 否 | 是 |
复杂事务 | 是 | 否 |
审计 | 是 | 是 |
自动分片 | 否 | 是 |
MongoDB基本指令
show dbs:显示当前所有数据库
use 数据库名:进入到指定的数据库中(可以不存在)
db:表示我们当前所处的数据库
show collections:显示我们数据库中所有集合
MongoDB基础操作
插入文档,若插入多个文档格式为( [ { },{ }.....] )
查询集合中的文档
修改文档中的数据,格式为db.集合名.update({查找条件},{$set:{属性名:"修改值"}}
删除文档
使用sort设置排序方式
设置投影方便我们阅读