LAXCUS兼容行存储(NSM)和列存储(DSM)两种数据模型,实现了混合存储。同时在分布环境里,做到将数据的分发和备份自动处理,这样就不再需要人工干预了。

    行存储,为了兼容广大用户对关系数据库的需求,结构上还是原来的样子,没有变化。列存储,因为是近年才流行起来的一种存储模型,以前应用得少,大家的了解不多,所以这里主要讲一讲列存储和比较两种存储模型的优缺点。



    先看下图,比较一下行/列两种存储结构的差异。



   图左侧是行存储模型,每一行由不同属性的列值组成,数据是从左到右、从上到下的排列,形成行与行连接的布局。图右侧是列存储模型,同列的数据被组织到一起,成为集合,数据是从上向下、从左到右的排列,形成列集合与列集合连接的布局。



下面说说列存储的优点:

(1) 压缩

    从列存储的图上可以看出,列存储是把每个列的数据聚集在一起,这种存储格式就给同质数据的压缩提供了条件。举个例子,在"Title"这一列中,如果有100个"LAXCUS"的词条。行存储做法是,把"LAXCUS"写到每一行的"Title"列里,磁盘里将出现100个"LAXCUS"的词条。在列存储中,这个工作可以这样做:在"Title"前面加一个计数器,每增加一个“LAXCUS”,计数器加1,累计增加100次,而数据本身不需要改变。两者相比,行存储需要的存储空间是列存储的100倍,列存储避免了数据重复的现象,这样就极大地压缩了存储空间。



(2) 索引

    在行存储,索引需要在行数据之外开辟一块存储空间,索引和数据是分开的。当检索数据的时候,首先要找到索引,然后才能定位到数据。我们经常使用的"CREATE INDEX"语句就是建立这样的映射关系。而在列存储中,索引和数据的实质是一个数据。也就是说,当我们检索数据的时候,找到索引的同时,也找到了数据。这样的结果就是:与行存储相比,列存储省略了索引空间,检索时效率也比行存储高。



LAXCUS对数据存储的优化的更多相关文章

  1. Redis数据结构(一)-Redis的数据存储及String类型的实现

    1 引言 Redis作为基于内存的非关系型的K-V数据库.因读写响应快速.原子操作.提供了多种数据类型String.List.Hash.Set.Sorted Set.在项目中有着广泛的使用,今天我们来 ...

  2. 移动互联网实战--资源类APP的数据存储处理和优化

    前言: 对于资源类的APP, 其音频/图形占据了APP本身很大的比例. 如何存储和管理这些资源文件, 成了一个颇具挑战性的难点. 移动端的碎片化, 高中低端手机的并存, 需要开发者不光是具备基础的存储 ...

  3. ByteArrary(优化数据存储和数据流)

    原地址:http://www.unity蛮牛.com/blog-1801-799.html 首页 博客 相册 主题 留言板 个人资料   ByteArrary(优化数据存储和数据流) 分类:unity ...

  4. 性能优化之数据存储&DOM编程

    多读书多看报 数据存储 ·在javascript中,数据存储的位置会对代码整体性能产生重大的影响. ·数据存储共有4种方式:字面量.变量.数组.对象成员.   ·要理解变量的访问速度,就要理解作用域. ...

  5. Redis数据存储优化机制(转)

    原文:Redis学习笔记4--Redis数据存储优化机制 1.zipmap优化hash: 前面谈到将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象.省内存的原因是新建一个h ...

  6. TI C6000 数据存储处理与性能优化

    存储器之于CPU好比仓库之于车间.车间加工过程中的原材料.半成品.成品等均需入出仓库,生产效率再快,如果仓库周转不善,也必然造成生产阻塞.如同仓库需要合理地规划管理一般,数据存储也需要恰当的处理技巧来 ...

  7. Laxcus大数据管理系统2.0(5)- 第三章 数据存取

    第三章 数据存取 当前的很多大数据处理工作,一次计算产生几十个GB.或者几十个TB的数据已是正常现象,驱动数百.数千.甚至上万个计算机节点并行运行也已经不足为奇.但是在数据处理的后面,对于这种在网络间 ...

  8. 三分钟部署Laxcus大数据管理系统

    Laxcus是Laxcus大数据实验室历时五年,全体系自主设计研发的国内首套大数据管理系统.能够支撑百万台级计算机节点,提供EB量级存储和计算能力,兼容SQL和关系数据库.最新的2.x版本已经实现对当 ...

  9. Laxcus大数据管理系统2.0(13)- 总结

    总结 以上从多个角度阐述了Laxcus主要组成部分和应用情况.所有设计都是基于现实环境下的评估.对比.测试和考量.设计的基本思路很明确,就是将各项功能分解.细化.归类,形成一个个可以独立.小的模块,每 ...

随机推荐

  1. Spring知识点总结(一)

       1. 框架概述        所谓的框架其实就是程序的架子,在这个程序的架子中,搭建起程序的基本的骨架,针对程序的通用问题给出了便捷的解决方案,可以使开发人员 基于框架快速开发具体的应用程序.  ...

  2. oracle官网下载教程

    1.百度搜索oracle   也可以直接点击进入   oracle官网   或直接进入   下载页面 2.选择中文,看的更容易些 3.拉到最下面,选择所有下载和试用 4.选择数据库下载 5.点击下载对 ...

  3. python核心编程2 第十三章 练习

    13-3.对类进行定制.写一个类,用来将浮点型值转换为金额. class MoneyFmt(object): def __init__(self, value=0.0, flag='-'): self ...

  4. 清除input框的缓存

    html <div class="container"> <form class="parent" autocomplete="of ...

  5. Ajax在表单中的应用

    ajax在注册用户表单中的使用 1.验证用户名是否被使用 2.获取手机短信验证码 3.点击表单中的图片刷新,可实现刷新图片验证码 <!DOCTYPE html> <html> ...

  6. Python学习 :格式化输出

    方式一:使用占位符 % 常用占位符:% s   (s = string 字符串)     % d   (d = digit 整数(十进制))   %  f   ( f = float  浮点数) na ...

  7. ssh 远程命令

    远程拷贝文件,scp -r 的常用方法: 1.使用该命令的前提条件要求目标主机已经成功安装openssh-server 如没有安装使用 sudo apt-get install openssh-ser ...

  8. go学习笔记-函数

    函数 定义 格式 func function_name( [parameter list] ) [return_types] { 函数体 } 解析 func:函数由 func 开始声明 functio ...

  9. 笔记-flask-原理及请求处理流程

    笔记-flask-原理及请求处理流程 1.      服务器声明及运行 最基本的flask项目代码如下 from flask import Flask app = Flask(__name__) @a ...

  10. 在linux使用锐捷客户端上网(华中科技大学)

    第一步:下载锐捷客户端linux版本,下载网址为http://ncc.hust.edu.cn/cyxz/rzkhd.htm 第二步:解压该包,进入目录 #unzip RG_Supplicant_For ...