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  列式在存储方面占有非常大的优势,能有效提高数据压缩比,节省存储空间。


  • 相关阅读:
    高级特性(4)- 数据库编程
    UVA Jin Ge Jin Qu hao 12563
    UVA 116 Unidirectional TSP
    HDU 2224 The shortest path
    poj 2677 Tour
    【算法学习】双调欧几里得旅行商问题(动态规划)
    南洋理工大学 ACM 在线评测系统 矩形嵌套
    UVA The Tower of Babylon
    uva A Spy in the Metro(洛谷 P2583 地铁间谍)
    洛谷 P1095 守望者的逃离
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/6917772.html
Copyright © 2011-2022 走看看