• 数据库漫谈


      1、行存储与列存储(参考自http://storage.chinabyte.com/491/12390991.shtml)

      1)行存储:如MongoDB使用文档型的行存储。

      特征:将一行的所有列聚集存储。

      优点:写入(一行)是一次完成,且可以更好地保证数据的完整性。

      缺点:数据读取时,通常需要先将一行完全读出,再在内存中消除不需要的冗余列。

        解析一行数据时,需要在多种数据类型间转换,(在数据量大的时候)比较耗CPU,增加解析时间。

      2)列存储:如Hadoop的HBase。

      特征:每列的全部数据聚集存储。

      优点:数据读取时,每次可以读取某列的部分或全部数据(不存在冗余的问题,对大数据应用很有利)。当然,在读取多列时需要多次移动和定位磁头。

        同列的数据都是同质的,更容易解析(更有利于完整性要求不高的大数据分析)。另外,也更容易设计好的索引、压缩/解压算法。

        适合频繁读取单列或少数几列数据的应用。比如,查询密集型应用(如在线分析、数据挖掘)一般只关心少数几个字段,此时列存储方式的读取可以大大减少I/O。

      缺点:写入次数明显比行存储多,磁头需要多次移动和定位,消耗更多时间。

      改进:安装多块硬盘,多线程并行读写多个列;写过程的完整性问题可以使用回滚和校验机制改进。

    不断学习中。。。

  • 相关阅读:
    d3js 获取元素以及设置属性
    javascript 转义函数
    es6 对象浅拷贝的2种方法
    SwitchyOmega 代理设置
    table 设置边框
    Highcharts 配置选项详细说明
    windows环境下生成ssh keys
    vue 给组件绑定原生事件
    Vue 字面量语法 vs 动态语法
    Vue 2.0 v-for 响应式key, index及item.id参数对v-bind:key值造成差异研究
  • 原文地址:https://www.cnblogs.com/hanerfan/p/3705141.html
Copyright © 2020-2023  润新知