首页 > 数据库 >关系(SQL)与非关系(NoSQL)型数据库

关系(SQL)与非关系(NoSQL)型数据库

时间:2023-11-23 15:58:19浏览次数:46  
标签:关系 存储 NoSQL 支持 完整性 数据量 SQL 数据

关系型数据库

  • 行列式表存储
  • 结构化数据需要预定义数据类型
  • 数据量和查询量都不大,如果数据量大要做分表
  • 对数据一致性、完整性约束、事务性、可靠性要求比较高
  • 支持多表 Join 操作
  • 支持多表间的完整性,要删除 A 表的某条数据,可能需要先删除 B 表的某些数据
  • SQL 的增删改查功能强
  • 较为通用,技术比较成熟
  • 大数据量性能不足
  • 高并发性能不足
  • 无法应用于非结构化数据
  • 扩展困难

常用的有:Oracle、MySQL、PostgreSQL、SQLite

非关系型数据库

  • 表结构较灵活,比如列存储,键值对存储,文档存储,图形存储
  • 支持非结构化数据
  • 有的不需要预定义数据类型,有的甚至不需要预定义表
  • 支持大数据量
  • 多数都支持分布式
  • 扩展性好
  • 基本查询能力,高并发能力比较强 (因为采用非结构化、分布式,并牺牲一致性、完整性、事务性等功能)
  • 对数据一致性要求比较低
  • 通常不支持事务性,或是有限支持
  • 通常不支持完整性,复杂业务场景支持较差
  • 通常不支持多表 Join,或是有限支持
  • 非 SQL 查询语言,或类 SQL 查询语言,但功能都比较弱,有的甚至不支持修改删除数据
  • 不是很通用,技术多样,市场变化比较大

常用的有

  • 列式:HBase、Cassandra、ClickHouse
  • 键值:Redis、Memcached
  • 文档:MongoDB
  • 时序:InfluxDB、Prometheus
  • 搜索:Elasticsearch

SQL 和 NoSQL 是一个互补的关系,应用在不同的场景中

标签:关系,存储,NoSQL,支持,完整性,数据量,SQL,数据
From: https://www.cnblogs.com/KeFeng/p/17851733.html

相关文章

  • 刘金玉QT学习笔记:6-sqlite简易入门+QT结合使用
    //第一篇,测试一下1.Sqlite-linux自带-轻量级-关系型数据库2.安装-进入官网后点击Downloads-下载下图的两个zip,解压后把里面的文件放到C盘下自创一个sqlite的文件夹3.通过命令行使用sqlite3.exe来使用数据库-配环境变量作用:不用进入路径位置就可以打开(sqlite)4.基本......
  • Java读取文件-BufferedReader/FileReader/InputStreamReader/FileInputStream的关系和
    本文根据文章:https://blog.csdn.net/wjp0000/article/details/117771752进行修改一、Java读取和存储文件数据流Java读取文件,实际是将文件中的字节流转换成字符流输出到屏幕的过程这里面涉及到两个类:InputStreamReader和OutputStreamWriterInputStreamReader:将字节流转换成字......
  • litestream sqlite流式复制工具
    litestream是基于golang开发的sqlite流式复制工具,可以方便的复制数据到s3或者一些共享存储中说明litestream使用简单,对于一些基于sqlite的db存储的应用备份,是一个很不错的选择(比如默认的grafana,proxysql)同时litestream对于s3兼容的存储支持也很不错(minio)值得试用下参考资料......
  • MySQL 8.0支持哪些数据类型?
    数值数据类型整数类型:TINYINT:微型整数类型;占用1bytes空间;有符号支持的范围:-128~127;无符号支持的范围:0~255。SMALLINT:小型整数类型;占用2bytes空间;有符号支持的范围:-32768~32767;无符号支持的范围:0~65535。MEDIUMINT:中型整数类型;占用3bytes空间;有符号支持的范......
  • 影响MySQL 8.0单列索引长度的因素有哪些?
    MySQL8.0支持的单列索引长度最大是3072bytes,影响单列索引长度的因素有哪些:innodb_page_size:InnoDB页大小,默认是16KB。支持5种size:4k、8k、16k、32k、64k。row_format:表的行格式,默认是“dynamic”。支持6种格式:DEFAULT、DYNAMIC、FIXED、COMPRESSED、REDUNDANT、COMPACT。......
  • Python 使用SQLAlchemy数据库模块
    SQLAlchemy是用Python编程语言开发的一个开源项目,它提供了SQL工具包和ORM对象关系映射工具,使用MIT许可证发行,SQLAlchemy提供高效和高性能的数据库访问,实现了完整的企业级持久模型。ORM(对象关系映射)是一种编程模式,用于将对象与关系型数据库中的表和记录进行映射,从而实现通过面向......
  • SQL SERVER数据库权限分配
    1,新建只能访问某一个表的只读用户。--添加只允许访问指定表的用户:     exec  sp_addlogin  '用户名','密码','默认数据库名'         --添加到数据库     exec  sp_grantdbaccess  '用户名'       --分配SELECT......
  • Mybatis保存多记录,导致SQL过长,保存失败,按指定次数切分,多次保存。
     privatestaticfinalIntegerWORKITEM_MAX_NUMBER=200;privateintsavePbhProblemworkitem(List<ProblemWorkitemVm>problemworkitem){try{intcount=0;intlimit=countStep(problemworkitem.size(),WORKI......
  • NoSQL数据库比对
    NoSQL数据库比对SQL和NoSQL概念SQL:结构化查询语言(StructuredQueryLanguage)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。该语言以表格的形式从结构化数据格式中操作和检索数据。NoSQL:NoSQL,泛指非关系型......
  • pgsql获取数据所有的表的字段和字段属性
    selectDISTINCTORDINAL_POSITIONasrn,table_nameas"tb_name",column_nameas"en_name",(caseudt_nameWHEN'numeric'THEN'number'WHEN'decimal'THEN'number'WHEN'int4'THEN......