楼主: zq5143

列式数据库原理

[复制链接]
论坛徽章:
0
11#
发表于 2011-10-12 18:44 | 只看该作者
zpaul48 发表于 2011-9-5 16:17
这种数据库查一列的值会快很多吗?

相对于行式数据库,列式数据库在只查询一列时会快,表的列数越多,则快得越多。
假设有一个200列的表,我们只查询出表中的第1列。对于行式数据库,数据是按行存储在数据文件中的,所以,为了读取表中的全部的第1 列,会遍历整个数据文件,找到第1 列的位置,就把数据取出,之后跳过后面的199列,再找到第1列的下一个值,取出,再路过后面的199列,这样,数据文件的IO很严重。对于列式数据库,数据是按列存储的,每个列的数据是放在连续的存储空间中的,第1列数据也是这样,所以只需要读取第1列所在的空间的数据即可,省去了其它199列数据的IO,性能当然会好很多。

使用道具 举报

回复
论坛徽章:
92
2011新春纪念徽章
日期:2011-01-25 15:42:33咸鸭蛋
日期:2012-03-19 10:46:00版主1段
日期:2012-05-15 15:24:11奥运会纪念徽章:排球
日期:2012-08-29 07:02:50奥运会纪念徽章:跳水
日期:2012-09-26 06:44:27ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:42ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:32奥运会纪念徽章:击剑
日期:2012-10-12 07:20:332013年新春福章
日期:2013-02-25 14:51:242012新春纪念徽章
日期:2012-02-13 15:13:20
12#
发表于 2011-12-19 20:10 | 只看该作者
HBASE也是列式数据库吧,据说很适合OLTP啊。

至于写,现在都是写道buffer里面,对前台影响不大;

使用道具 举报

回复
论坛徽章:
1
ITPUB9周年纪念徽章
日期:2010-10-08 09:31:21
13#
发表于 2013-1-1 11:48 | 只看该作者
heartdemon 发表于 2011-10-12 18:44
相对于行式数据库,列式数据库在只查询一列时会快,表的列数越多,则快得越多。
假设有一个200列的表,我 ...

行式数据库其一行的数据按现在的数据块大小如8K,均分布在一块,所以一般一次IO就够了,列式数据库则要200次IO,用了两三年的列式数据库,发现除了做数据分析有优势以外,其他没啥优势,根本不能用于查询。如果哪个列式数据库说他能适应查询,那一定是吹牛!原理决定的。

使用道具 举报

回复
论坛徽章:
13
授权会员
日期:2009-06-01 09:42:54马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:112013年新春福章
日期:2013-02-25 14:51:242012新春纪念徽章
日期:2012-01-04 11:50:44ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282011新春纪念徽章
日期:2011-01-04 10:36:172010广州亚运会纪念徽章:武术
日期:2010-11-22 15:41:16ITPUB9周年纪念徽章
日期:2010-10-08 09:31:222010新春纪念徽章
日期:2010-03-01 11:20:52
14#
发表于 2013-1-1 21:29 | 只看该作者
学习了

使用道具 举报

回复
论坛徽章:
3
授权会员
日期:2006-05-11 15:55:152011新春纪念徽章
日期:2011-02-18 11:42:492013年新春福章
日期:2013-02-25 14:51:24
15#
发表于 2013-1-4 14:19 | 只看该作者
写的非常不错,学习了。

使用道具 举报

回复
论坛徽章:
18
2013年新春福章
日期:2013-02-25 14:51:24白羊座
日期:2015-08-02 16:26:52马上加薪
日期:2014-08-06 14:20:38马上有对象
日期:2014-07-30 07:42:322014年世界杯参赛球队: 澳大利亚
日期:2014-07-04 13:01:342014年世界杯参赛球队: 英格兰
日期:2014-07-03 13:42:522014年世界杯参赛球队: 哥伦比亚
日期:2014-06-21 18:16:122014年世界杯参赛球队: 科特迪瓦
日期:2014-06-13 09:39:14马上有钱
日期:2014-02-18 16:43:092014年新春福章
日期:2014-02-18 16:43:09
16#
发表于 2013-1-12 10:20 | 只看该作者
thinkone 发表于 2013-1-1 11:48
行式数据库其一行的数据按现在的数据块大小如8K,均分布在一块,所以一般一次IO就够了,列式数据库则要20 ...

請問

数据分析 跟 查询 的差別是?

使用道具 举报

回复
论坛徽章:
2
ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282013年新春福章
日期:2013-02-25 14:51:24
17#
发表于 2013-2-8 10:19 | 只看该作者
thinkone 发表于 2013-1-1 11:48
行式数据库其一行的数据按现在的数据块大小如8K,均分布在一块,所以一般一次IO就够了,列式数据库则要20 ...

列式数据库,在实现上,不是只有简单的在存储上按列存储。通过一些特定的存储设计,在即席查询上,也是有一些优势的。

使用道具 举报

回复
论坛徽章:
0
18#
发表于 2013-3-31 23:22 | 只看该作者
请问这代码是什么语言?thx

使用道具 举报

回复
论坛徽章:
0
19#
发表于 2013-4-7 20:21 | 只看该作者
thinkone 发表于 2013-1-1 11:48
行式数据库其一行的数据按现在的数据块大小如8K,均分布在一块,所以一般一次IO就够了,列式数据库则要20 ...

13楼是学生吗?你测试的显然是Select * From Table这样的全表扫描的场景,在这种场景下,列式数据库没有任何优势。列式数据库的优势是在一个宽表中针对其中的有限列进行查询和统计。

使用道具 举报

回复
求职 : 数据库开发
论坛徽章:
1
ITPUB社区千里马徽章
日期:2013-06-09 10:15:34
20#
发表于 2013-5-17 09:36 | 只看该作者
根据业务需要吧选择吧,这是架构师考虑的问题

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表