数据库对比、类比

关系型数据库、NoSQL

关系型数据库

表与表之间有关系。表存储一些格式化的数据结构,每个元组字段的组成都一样,这样便于表之间的联结操作。不过也限制了其性能瓶颈。

更支持SQL,支持复杂计算

NoSQL

表与表之间没有直接关系,创建不用遵循三范式,以键值对存储,结构不固定,可以减少一些空间和时间上的开销。

NoSQL用于指定那些非关系型的,分布式的,且一般不保证遵循ACID原则的数据存储系统。

不太支持复杂计算。

一般不用做分析使用。

对比项 NoSQL 关系型数据库
大表效率
成本
事务 不支持 支持
查询方式 非结构化查询 结构化查询
存储扩展 横向扩展,分布式 纵向扩展(横向有限)
存储规范 可以冗余 规范性,避免重复
存储格式 文档、键值对 表格式的行和列
复杂SQL,多表关联 不行

行列数据库

行数据库按行存,列数据库按列存。

行数据库插入快,列数据库插入慢。

行数据库全表扫描,列数据库扫描区域很小。

对于聚合操作来说,列式数据库更快。

类别 行存储 列存储
写入 写入一次性完成,保证数据完整性 一行记录拆成单列保存,写入次数多
数据修改写入方便 不轻易做数据修改写入操作
适用于关系型数据库 适用于分析型数据库
读取 将整行数据读取,如果只需要部分列,就会产生冗余列,会有消除冗余列的操作 读取的时候只读需要的列,不存在冗余性问题
同一行数据类型一般不同,解析时需要切换多种数据类型,消耗CPU增加解析时间 针对某列数据,数据类型相同,读取时不需要频繁切换数据类型
按行压缩,当一行有多个字段,每个字段对应的数据类型可能不一致,压缩性能比较差 按列压缩,每一列对应相同的数据类型

HBase

  • HBase是列式NoSQL数据库,可以海量存储,但是不适合分析。
  • 可以作为数仓的维表使用,只需按主键查询即可。

ClickHouse

  • ClickHouse是列式关系型数据库,既有列式数据库适合聚合操作的优点,又有关系型数据库的完备SQL特性。
  • 由于其彪悍的单表性能,所以将实时数据提前关联成宽表交给其处理,可以保证数据的时效性。

参考

行列数据库对比

HBase分析

NoSQL与关系型数据库全面对比

NoSQL,关系型数据库,行列数据库对比、类比的更多相关文章

  1. 通过读取excel数据和mysql数据库数据做对比(二)-代码编写测试

    通过上一步,环境已搭建好了. 下面开始实战, 首先,编写链接mysql的函数conn_sql.py import pymysql def sql_conn(u,pwd,h,db): conn=pymy ...

  2. 数据库行列转换sql

    经常折腾数据库,常常遇到数据库行列转换的问题,下面就用一个小例子来演示下如何进行行列转换. 1.创建一张表 CREATE TABLE [android_source]( [CREATETIME] [d ...

  3. 【转】SQL Server、Oracle、MySQL和Vertica数据库常用函数对比

    SQL Server.Oracle.MySQL和Vertica数据库常用函数对比 Vertica数据库是HP公司新收购的用于BI方面的数据库. 1. 绝对值 S:select abs(-1) valu ...

  4. 提高MSSQL数据库性能(1)对比count(*) 和 替代count(*)

    原文:提高MSSQL数据库性能(1)对比count(*) 和 替代count(*) 文章准备的数据库: Atricles 表   数据量60690000条数据 ArticleID 主键自增列+自动建立 ...

  5. Vertica的这些事(二)——SQL-Server、Oracle、MySQL和Vertica数据库常用函数对比

    SQL Server.Oracle.MySQL和Vertica数据库常用函数对比 Vertica数据库是HP公司新收购的用于BI方面的数据库. 绝对值 S:select abs(-1) value O ...

  6. Python与数据库[0] -> 数据库概述

    数据库概述 / Database Overview 1 关于SQL / About SQL 构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一 ...

  7. 数据库(数据库、表及表数据、SQL语句)

    数据库MYSQL 今日内容介绍 u MySQL数据库 u SQL语句 第1章 数据库 1.1 数据库概述 l 什么是数据库 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储 ...

  8. day40——数据库、数据库分类、安装、修改密码、字符集编码、简单语句介绍

    day40 详情请看:https://www.cnblogs.com/clschao/articles/9907529.html 数据库 数据库 简而言之可视为电子化的文件柜--存储电子文件的处所,用 ...

  9. DB-概念-数据库:数据库/Database

    ylbtech-DB-概念-数据库:数据库/Database 数据库是以一定方式储存在一起.能与多个用户共享.具有尽可能小的冗余度.与应用程序彼此独立的数据集合,可视为电子化的文件柜——存储电子文件的 ...

随机推荐

  1. Java学习笔记-基础语法Ⅴ

    学习一些Java常用的API Math:包含执行基本数字运算的方法 如果没有构造方法,一般类的成员都是静态的,通过类名可以直接调用 Java中有两种random函数,Math.Random()函数能够 ...

  2. 多线程07:async、future、packaged_task、promise

    async.future.packaged_task.promise 本节内容需要包含头文件:#include <future> 一.std::async. std::future 创建后 ...

  3. SQL查询与SQL优化[姊妹篇.第四弹]

    在上一篇文章中,我们一起了解了关系模型与关系运算相关的知识,接下来我们一起谈谈,面对复杂的关系数据,我们如何来优化,SQL如何玩转更优呢? 在上一篇中抛出了4个关于优化方面的问题: 1.返回表中0.0 ...

  4. drools规则属性(rule attributes)的使用

    一.介绍 规则属性是您可以添加到业务规则以修改规则行为的附加规范. 在 DRL 文件中,您通常在规则条件和操作的上方定义规则属性,多个属性位于单独的行中,格式如下: rule "rule_n ...

  5. C# .NET ML.NET 机器学习 图像分类

    一. 准备工作 IDE是 VS2019.先下载好"resnet_v2_50_299.meta"这个文件,放入"C:\Users\jk\AppData\Local\Temp ...

  6. CSS基础学习(二)

    11.CSS背景 ①设置背景颜色(颜色值通常可以用十六进制(如#000000)或者颜色名称(如red)来表示) 属性:background-color 例: body { background-col ...

  7. 场景实践:基于 IntelliJ IDEA 插件部署微服务应用

    体验简介 阿里云云起实验室提供相关实验资源,点击前往 本场景指导您把微服务应用部署到 SAE 平台: 登陆 SAE 控制台,基于 jar 包创建应用 基于 IntelliJ IDEA 插件更新 SAE ...

  8. MySQL、SqlServer、Oracle,这三种数据库的优缺点,你知道吗?

    盘点MySQL.SqlServer.Oracle 三种数据库优缺点 MySQL SqlServer Oracle 一.MySQL 优 点 体积小.速度快.总体拥有成本低,开源:支持多种操作系统:是开源 ...

  9. ROS基本程序实现

    0.前言 现在介绍ROS基本程序实现的教程有很多,步骤无非就是建工作空间,编译,创建功能包,创建文件和修改CMakeList,之后再编译.运行程序这几步.但是这些教程中很多在文件夹切换的很混乱,导致会 ...

  10. 【python】tile函数简单介绍

    转:https://blog.csdn.net/april_newnew/article/details/44176059格式:tile(A,reps)* A:array_like* 输入的array ...