行存储(关系型数据库)与列存储(hbase,es聚合的doc_value)[通俗易懂]
发布时间 - 2025-07-11 00:00:00 点击率:次大家好,很高兴再次与大家见面,我是你们的朋友全栈君。
- 为什么要采用列式存储?列式存储(Columnar或column-based)与传统的关系型数据库的行式存储(Row-based storage)不同。简单来说,两者的区别在于表的组织方式:
- 行式存储按行序列存储表。
- 列式存储按列序列存储表。
在行式存储中,表的数据是集中在一起的,而在列式存储中,数据是被分开保存的。
| 行式存储 | 列式存储 | |
|---|---|---|
| 优点 | - 数据集中存储 - INSERT/UPDATE操作简便 |
- 只读取涉及的列,查询效率高 - 投影(projection)操作高效 - 任意列都可以作为索引 |
| 缺点 | - 即使只涉及几列,选择(selection)时也会读取所有数据 | - 选择操作后,需要重新组装列 - INSERT/UPDATE操作较为复杂 |
备注:列式数据库有利于投影操作。SQL中的投影是指从查询中选择并返回的列集合,换句话说,就是查询中SELECT后面的列。在Oracle中,首先会获取整行数据,然后从中提取指定列的数据到已知的投影中。
SELECT某个字段即为投影操作。
注:关系型数据库理论回顾 - 选择(Selection)和投影(Projection)
数据压缩:通过字典表压缩数据。下图展示了表在经过字典表压缩后的样子。通过字典表压缩,表中的字符串被转换为数字。由于每个字符串在字典表中只出现一次,从而实现了数据压缩的目的(这有点类似于规范化和非规范化的概念)。
查询执行性能:通过一个查询的执行过程来说明列式存储(以及数据压缩)的优点:
关键步骤如下:
- 在字典表中找到字符串对应的数字(仅进行一次字符串比较)。
- 使用数字在列中进行匹配,匹配上的位置设为1。
- 对不同列的匹配结果进行位运算,得到满足所有条件的记录下标。
- 使用这些下标组装出最终的结果集。
发布者:全栈程序员栈长,转载请注明出处:https://www./link/15826f19ea4eff3ab9b34f411276995c 原文链接:https://www./
link/c8377ad2a50fb65de28b11cfc628d75c
# linux
# oracle
# 区别
# 为什么
# sql
# html
# select
# 字符串
# 栈
# column
# hbase
# 数据库
# https
# 数据压缩
# 我是
# 也会
# 是指
# 你们的
# 设为
# 而在
# 很高
# 大家好
# 转载请注明
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
高防服务器如何保障网站安全无虞?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
什么是javascript作用域_全局和局部作用域有什么区别?
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
在Oracle关闭情况下如何修改spfile的参数
微信小程序 HTTPS报错整理常见问题及解决方案
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
如何用PHP快速搭建CMS系统?
,怎么在广州志愿者网站注册?
移动端脚本框架Hammer.js
实例解析Array和String方法
如何在万网利用已有域名快速建站?
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理
Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
LinuxShell函数封装方法_脚本复用设计思路【教程】
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
非常酷的网站设计制作软件,酷培ai教育官方网站?
如何用低价快速搭建高质量网站?
Python文件操作最佳实践_稳定性说明【指导】
如何快速配置高效服务器建站软件?
Laravel如何自定义错误页面(404, 500)?(代码示例)
Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用
phpredis提高消息队列的实时性方法(推荐)
Laravel如何实现模型的全局作用域?(Global Scope示例)
PHP正则匹配日期和时间(时间戳转换)的实例代码
Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】
在centOS 7安装mysql 5.7的详细教程
网站制作大概多少钱一个,做一个平台网站大概多少钱?
高性价比服务器租赁——企业级配置与24小时运维服务
jQuery validate插件功能与用法详解
javascript中的数组方法有哪些_如何利用数组方法简化数据处理
如何在建站主机中优化服务器配置?
Python高阶函数应用_函数作为参数说明【指导】
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
Android利用动画实现背景逐渐变暗
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
魔方云NAT建站如何实现端口转发?
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】
Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解
如何快速搭建高效WAP手机网站吸引移动用户?

