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

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

相关推荐
Skilce13 分钟前
ZrLog 高可用部署
运维·服务器·数据库·阿里云·maven
indexsunny3 小时前
互联网大厂Java求职面试实战:微服务与Spring生态全攻略
java·数据库·spring boot·安全·微服务·面试·消息队列
沪漂阿龙3 小时前
别再让数据库“吃”脏数据了!一文讲透MySQL约束,从入门到精通
数据库·mysql
skiy3 小时前
java与mysql连接 使用mysql-connector-java连接msql
java·开发语言·mysql
2401_873544925 小时前
使用Python进行PDF文件的处理与操作
jvm·数据库·python
虾..5 小时前
多路复用 --- select系统调用
服务器·数据库·sql
杨云龙UP5 小时前
mysqldump逻辑备份文件恢复总结:全库恢复、单库恢复,一篇讲明白
linux·运维·服务器·数据库·mysql·adb
ybwycx5 小时前
mysql重置root密码(适用于5.7和8.0)
数据库·mysql·adb
色空大师6 小时前
【网站搭建实操(一)环境部署】
java·linux·数据库·mysql·网站搭建
亚历克斯神6 小时前
Flutter for OpenHarmony: Flutter 三方库 mutex 为鸿蒙异步任务提供可靠的临界资源互斥锁(并发安全基石)
android·数据库·安全·flutter·华为·harmonyos