zoukankan      html  css  js  c++  java
  • 数据库漫谈

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

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

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

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

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

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

      2)列存储:如Hadoop的HBase。

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

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

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

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

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

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

    不断学习中。。。

  • 相关阅读:
    SEO高手和SEO屌丝的八个区
    【织梦免费模板】防火涂料网站模版
    利用火车头采集A67手机电影教程一
    SEO高级技巧
    .NET代码设计简单规范
    JAVA 和.NET在安全功能的比较
    poi实现excel数据的导入和导出
    eclipse复制bpmn文件到idea下乱码问题处理
    分账接收方与原请求方不一致,微信分账总结
    Java List<T> 去重
  • 原文地址:https://www.cnblogs.com/hanerfan/p/3705141.html
Copyright © 2011-2022 走看看