当前位置: 首页 > news >正文

关系型数据库和非关系型数据库的区别

1.常见的主流数据库

关系型数据库:

MySql   、达梦   、PostgreSQL 、Oracle  、Sql Server 、Sqlite
非关系型数据库:

Redis  、MongoDB 、HBase 、 Neo4J 、 CouchDB 

2.介绍

关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织,基于表格模型,适合结构化数据,支持高事务性。

非关系型数据库以键值对、文档或图结构存储数据,擅长横向扩展和处理大数据。

  1.  键值数据库:Redis、Memcached、Riak
  2. 列族数据库:Bigtable、HBase、Cassandra
  3. 文档数据库:MongoDB、CouchDB、MarkLogic
  4. 图形数据库:Neo4j、InfoGrid

3.区别

3.1 数据存储方式不同

主要差异在于数据存储的方式,关系型数据库是表格形式存储数据的,存储在鼠标的行和列中。数据表可以彼此关联写作存储,也容易提取数据。

非关系型数据不适合存储在数据表的行和列中,而是大块组合在一起。通常存储在数据集中,就像文档、键值对或者图结构。数据及其特性是选择数据存储和提取方式的首要影响因素。

3.2 扩展方式不同

SQL和NoSQL数据库最大的差别可能是在扩展方式上,要支持日益增长的需求当然要扩展,要支持更多并发量,SQL数据库是纵向扩展,也就是说提高处理能力,使用速度更快速的计算机,这样处理相同的数据集就更快了。因为数据存储在关系表中,操作的性能瓶颈可能涉及很多个表,这都需要通过提高计算机性能来客服。虽然SQL数据库有很大扩展空间,但最终肯定会达到纵向扩展的上限。

NoSQL数据库是横向扩展的。因为非关系型数据存储天然就是分布式的,NoSQL数据库的扩展可以通过给资源池添加更多普通的数据库服务器(节点)来分担负载。

3.3 对事务性的支持不同

如果数据操作需要高事务性或者复杂数据查询需要控制执行计划,那么传统的SQL数据库从性能和稳定性方面考虑是你的最佳选择。SQL数据库支持对事务原子性细粒度控制,并且易于回滚事务。

虽然NoSQL数据库也可以使用事务操作,但稳定性方面没法和关系型数据库比较,所以它们真正闪亮的价值是在操作的扩展性和大数据量处理方面。

相关文章:

  • JavaScript 反射(Reflect)和代理(Proxy)简单介绍
  • OLED移植
  • expressjs 中的mysql.createConnection,execute 怎么使用
  • MacOS配置python环境
  • Linux安装RabbitMQ安装
  • Ubuntu如何如何安装tcpdump
  • 微信小程序操作蓝牙
  • vue3 环境配置vue-i8n国际化
  • 当人工智能拥抱餐饮业,传统与创新的交融
  • 每天五分钟深度学习pytorch:基于pytorch搭建一元线性回归模型
  • 【EXCEL数据处理】000010 案列 EXCEL文本型和常规型转换。使用的软件是微软的Excel操作的。处理数据的目的是让数据更直观的显示出来,方便查看。
  • 【AIGC】ChatGPT提示词解析:如何打造个人IP、CSDN爆款技术文案与高效教案设计
  • 【web安全】——sql注入
  • 查缺补漏----该不该考虑不可屏蔽中断
  • TypeScript 算法手册【选择排序】
  • [ JavaScript ] 数据结构与算法 —— 链表
  • [deviceone开发]-do_Webview的基本示例
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【391天】每日项目总结系列128(2018.03.03)
  • ESLint简单操作
  • Github访问慢解决办法
  • Java到底能干嘛?
  • js学习笔记
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • SpiderData 2019年2月25日 DApp数据排行榜
  • SpringBoot几种定时任务的实现方式
  • underscore源码剖析之整体架构
  • vue 配置sass、scss全局变量
  • 简析gRPC client 连接管理
  • 警报:线上事故之CountDownLatch的威力
  • 排序(1):冒泡排序
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 入口文件开始,分析Vue源码实现
  • 世界上最简单的无等待算法(getAndIncrement)
  • 为视图添加丝滑的水波纹
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • Spring Batch JSON 支持
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • # 服务治理中间件详解:Spring Cloud与Dubbo
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (3) cmake编译多个cpp文件
  • (C语言)fread与fwrite详解
  • (PySpark)RDD实验实战——取一个数组的中间值
  • (solr系列:一)使用tomcat部署solr服务
  • (纯JS)图片裁剪
  • (第二周)效能测试
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (七)Appdesigner-初步入门及常用组件的使用方法说明
  • (四) Graphivz 颜色选择
  • (转)nsfocus-绿盟科技笔试题目
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)