文章插图
一、简介1. 行式数据库
- 平常用的结构化关系型数据库,比如 mysql、sqlserver 等
- 一行为一条数据,进行记录存储
- 可以进行 join 查询,可以进行笛卡尔积运算
特点
因为硬盘寻址时间相较于计算机上其他部件的运行速度来说不是一般的慢,所以常用相同工作负载下的硬盘访问性能来比较行数据库和列数据库 。通常,顺序读取数据要比随机访问更快 。而且,硬盘寻址时间的提升比起 CPU 速度的进步要慢得多 (参看 摩尔定律),在使用硬盘作为存储媒介的系统上这种情况很可能还会持续一段时间 。下面简单罗列了一些选择行数据库还是列数据库的权衡依据 。当然,如果能够把数据全放在内存中,那么使用内存数据库性能会更好 。
- 1. 在只需要根据某几列来聚合数据的时候按列的数据组织方式更有效 。因为这样只需要读取一部分数据,要比读取全部数据更快 。
- 2. 当只需要修改某一列值的时候按列的数据组织方式更有效 。因为可以直接找到某列数据并修改,而与行中的其他列无关 。
- 3. 当需要某行的多列数据的时候按行的数据组织方式更有效 。当行中数据不是太多的情况下一次硬盘寻址就可以获得该行的所有数据 。
- 4. 在新增行数据的时候,如果各列都有值,那么按行的数据组织方式会更有效,因为只需要一次硬盘寻址就可以写入整行的全部数据 。
- 面向行的数据存储架构更适用于 OLTP - 频繁交互事务的场景 。
- 面向列的数据存储架构更适用于 OLAP-(如数据仓库) 这样在海量数据((可能达到 terabyte 规模))中进行有限复杂查询的场景 。
- 底层存储实例
- 随机读与顺序读
- 极高的装载速度(最高可以等于所有硬盘 IO 的总和,基本是极限了)
- 适合大量的数据而不是小数据
- 实时加载数据仅限于增加(删除和更新需要解压缩 Block 然后计算然后重新压缩储存
- 高效的压缩率,不仅节省储存空间也节省计算内存和 CPU 。
- 非常适合做聚合操作 。
- 不适合扫描小量数据
- 不适合随机的更新
- 批量更新情况各异,有的优化得比较好的列式数据库(比如 Vertica)表现比较好,有些没有针对更新的数据库表现比较差 。
- 不适合做含有删除和更新的实时操作
- 适合频繁地增删改数据
- 小量数据的频繁维护和简单统计
- 不适合做统计类操作
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- 垃圾的污染现状及垃圾分类处理的意义 浅谈垃圾分类的现状与意义
- 山行的作者是谁朝诗人又是谁诗人将霜叶与什么作对比突出了霜叶的红
- 段誉和南帝段智兴究竟是什么关系 南帝与段誉的关系
- 吕归尘什么时候变强
- 你的出国行李收拾好了吗 行李都收拾好了
- 中国癌症高发与蚝油有关 中国癌症高发与蚝油有关?
- 2021的C位口红 2021年流行口红色号
- 独立事件与互斥事件的区别与联系
- 20课妈妈的账单中小彼得看到妈妈的账单后他有什么反应和行动?
- 梦见与女友分手是什么意思