zoukankan      html  css  js  c++  java
  • 什么是行式数据库,什么是列式数据库

    数据库以行、列的二维表的形式存储数据。可是却以一维字符串的方式存储。比例如以下面的一个表:

    EmpId Lastname Firstname Salary
    1 Smith Joe 40000
    2 Jones Mary 50000
    3 Johnson Cathy 44000

    这个简单的表包含员工代码(EmpId), 姓名字段(Lastname and Firstname)及工资(Salary).

    这个表存储在电脑的内存(RAM)和存储(硬盘)中。尽管内存和硬盘在机制上不同,电脑的操作系统是以相同的方式存储的。数据库必须把这个二维表存储在一系列一维的“字节”中,由操作系统写到内存或硬盘中。

    行式数据库把一行中的数据值串在一起存储起来,然后再存储下一行的数据。以此类推。

          1,Smith,Joe,40000;
          2,Jones,Mary,50000;
          3,Johnson,Cathy,44000;
    



    列式数据库把一列中的数据值串在一起存储起来,然后再存储下一列的数据,以此类推。

          1,2,3;
          Smith,Jones,Johnson;
          Joe,Mary,Cathy;
          40000,50000,44000;
    

    这仅仅是一个简化的说法。


    在关系数据库领域,除传统的ORACLE、SQLSERVER、MYSQL等行式数据库外。眼下在数据仓库领域列式数据库越来越受到关注。



    二  对照

    1  行式更适合OLTP, 查询一个记录的全部列。

        列式更适合OLAP,很适合于在数据仓库领域发挥作用,比方数据分析、海量存储和商业智能。涉及不常常更新的数据。因为设计上的不同。列式数据库在并行查询处理和压缩上更有优势。并且数据是以列为单元存储,全然不用考虑数据建模或者说建模更简单了。要查询计算哪些列上的数据,直接读取列即可。


    2  列式在存储方面占有非常大的优势,能有效提高数据压缩比,节省存储空间。


  • 相关阅读:
    Datawhale编程实践(LeetCode 腾讯精选练习50)Task11
    Datawhale编程实践(LeetCode 腾讯精选练习50)Task10
    Datawhale编程实践(LeetCode 腾讯精选练习50)Task9
    Datawhale编程实践(LeetCode 腾讯精选练习50)Task8
    Datawhale编程实践(LeetCode 腾讯精选练习50)Task7
    Java多线程之三volatile与等待通知机制示例
    Java多线程之一
    [WC2021] 括号路径
    [CF1375H] Set Merging
    [CF1342E] Placing Rooks
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/6917772.html
Copyright © 2011-2022 走看看