MongoDB 1: NoSQL 和 SQL的区别
导读:本篇博客,主要是结合自己在项目中的使用,简单的阐述一下NoSQL和SQL的区别。那么,根据自己的应用,NoSQL这边,选择的是MongoDB(Redis虽然也是,但属于内存存储,这里不予说明)。SQL这边,选择的是MySQL。
一、简单概述
SQL:对于SQL来说,也是我们最常说的关系型数据库,比如:MySQL,SQLServer等。那么,它的一个最明显的表示是,它的数据,全部是通过表单进行存储,有行和列之分。
NoSQL:相对于SQL而言,NoSQL则是一种非关系型的数据库。NoSQL(not only SQL),它的数据存储是以文档或者集合的形式进行,没有行列之分。
1.1,从数据存储来看:
1.2,从功能来看:
1.3,从查询语言来看:
个人感觉,关系型和非关系,在本质上并没有什么区别。而在应用层面上,查询语言几乎是相同的,区别比较少,学习的成本也是相对较低。
二、实例说明
需求:希望获取一个用户的完整银行账户信息
2.1,使用关系型
我们通常的做法,是建立一个用户表,是存储用户的基本信息;再建立一个银行账户表,存储银行账户信息。然后通过外键,使这两者之间产生联系。
表一:用户表
表二:用户记录
那么当我们想要获取用户的完整信息时,我们通常通过外键,去获得两张表信息的联合;
我们通过使用关系型数据库,无法一次性获得所有的数据,通常通过联合。那么,如果数据表过多,会发生什么?PS:维护过数据库的应该有所体会。
可是,如果通过非关系型的数据块进行存储呢?比如MongoDB
2.2,使用非关系型
MongoDB允许你查找文档中的任何东西,这也就意味着,不用联合,就可以一次性的获取所有的数据。
三、思考总结
在之前的项目中,使用了MongoDB去存储考生的头像或者说是音频文件。那么事实上,大多数数据库都支持image的存储,对于音频文件,也都是使用大型的二进制存储结构进行存储,或者转换成文件流的形式写入数据库。
如果说使用MongoDB仅是为了存储头像或者说音频,那么我认为这是一件有待商榷的事儿。一个考生在当场考试配置下,只会对应一份考试信息,那么作为头像来说,是完全可以通过关系型,也就是我们一直使用的MySQL去实现的。
PS:一直很费解,为什么仅仅用MongoDB去存了图片?它的出现和要解决的问题,并不是对于流性文件或者图片的存储!
后续,将介绍MongoDB的简单安装和使用,以及使用MongoDB的问题和解决方案。
MongoDB 1: NoSQL 和 SQL的区别的更多相关文章
- 为什么使用Nosql:Nosql和SQL的区别
1.概念: SQL(Structured Query Language)数据库,指关系型数据库.主要代表:SQL Server.Oracle.MySQL.PostgreSQL. NoSQL(Not O ...
- 【转】Redis学习---NoSQL和SQL的区别及使用场景
什么是NoSQL NoSQL,指的是非关系型的数据库.NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称,它具有非关系型.分布式.不提供ACID的数 ...
- 关于NoSQL与SQL的区别
简单说来:sql是关系型数据库的结构化查询语言,而nosql,一般代指菲关系型数据库,sql语句就不能用来,不过有些有leisql的查询语言,且nosql数据库没有统一的查询语言. 相关参考文章阅读: ...
- Mongodb Mysql NoSQL的区别和联系
MongoDB 什么是MongoDB? MongoDB是一个基于分布式文件存储的数据库,由C++语言编写,皆在为WEB应用提供可扩展的高性能数据存储解决方案 MongoDB是一个介于关系数据库和非关系 ...
- 关系型数据库管理系统(RDBMS)与非关系型数据库(NoSQL)之间的区别
简介 关系型数据库管理系统(RDBMS)是建立在关系模型基础上的数据库,主要代表有:Microsoft SQL Server,Oracle,MySQL(开源). 非关系型数据库(NoSQL),主要代表 ...
- MySQL、MongoDB、Redis 数据库之间的区别与使用(本章迭代更新)
MySQL.MongoDB.Redis 数据库之间的区别与使用 MySQL.MongoDB.Redis 数据库之间的区别与使用(本章迭代更新) update:2019年2月20日 15:21:19(本 ...
- MySQL与MongoDB的操作对比,以及区别
MySQL与MongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库.它们各有各的优点,关键是看用在什么地方 ...
- 1.MySQL与MongoDB的操作对比,以及区别
转自:https://www.cnblogs.com/chris-oil/p/4982490.html MySQL与MongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoD ...
- 5G时代,为什么NoSQL和SQL存在短板?
01 介绍 当今的通信服务提供商(CSP)需要能够在处理海量复杂的数据的同时,不会下降或者减慢网路响应速度和可靠性.5G时代,设备和用户数量呈指数级增长,这对业务支持服务(BSS)提出了新需求,也成为 ...
随机推荐
- iphone dev 入门实例5:Get the User Location & Address in iPhone App
Create the Project and Design the Interface First, create a new Xcode project using the Single View ...
- (C/C++) Interview in English - Threading
Q. What's the process and threads and what's the difference between them? A. A process is an execut ...
- You need to use a Theme.AppCompat theme
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dji.sdk.sample/com.dji.sdk.sa ...
- UVA 272 TEX Quotes
TEX Quotes 题意: 变引号. 题解: 要想进步,真的要看一本好书,紫书P45 代码: #include<stdio.h> int main() { int c,q=1; whil ...
- sentos nginx安装
nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息. 正式开始前,编译环境gcc g++ 开发库之类的需要提前装好,这里默认你已经装好. ububtu平台编译环 ...
- java多线程之AtomicInteger
AtomicInteger原子操作实现同步 package Thread.Common; import java.util.Timer; import java.util.TimerTask; imp ...
- FOOD
Serving order of food courses(上菜顺序)1. Appetizer(starter)2. Main Course3. Dessert Style of cooking1. ...
- 查看MySQL的错误日志的方法
我们经常在运行MySQL时会出一些错误,也经常被这些错误搞得晕头转向.当然解决这些问题的首要任务是找到日志信息. MySQL的错误信息是在data目录下的,且文件名为<hostname>. ...
- [kuangbin带你飞]专题二十二 区间DP
ID Origin Title 17 / 60 Problem A ZOJ 3537 Cake 54 / 105 Problem B LightOJ 1422 Hallowee ...
- SQL Server中易混淆的数据类型
1)char.varchar.text和nchar.nvarchar.ntextchar和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据 ...