Chinaunix首页 | 论坛 | 博客

-

  • 博客访问: 4132238
  • 博文数量: 172
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1923
  • 用 户 组: 普通用户
  • 注册时间: 2018-12-20 14:57
文章分类
文章存档

2021年(19)

2020年(81)

2019年(68)

2018年(4)

我的朋友

发布时间:2021-01-22 17:14:03

一、  问题背景与适用场景在《性能优化技巧:部分预关联》一文中,我们介绍了将维表内存化并预关联的技术,但事实表与维表关联时,仍需进行hash计算和比对,怎么提高这一步的性能呢?我们今天再介绍一种优化技巧:外键序号化。外键序号化的思路是,如果维表的主键是从1开始的自然数(也就是记录所在.........【阅读全文】

阅读(910) | 评论(0) | 转发(0)

发布时间:2021-01-22 17:08:29

一、  问题背景与适用场景在《性能优化技巧:预关联》中,我们测试了将数据表事先全部加载进内存并做好关联后的查询性能优化问题,但如果内存不够大,不能将维表和事实表全部装入,那怎么办呢?此时,可以将维表预先装入内存,建好索引,实现维表部分的预关联,省去一半hash计算。我们下面再来测试.........【阅读全文】

阅读(1136) | 评论(0) | 转发(0)

发布时间:2021-01-22 16:44:09

一、  问题背景与适用场景SQL中JOIN的性能是个老大难问题,特别是关联表较多时,计算性能会急剧下降。SQL实现JOIN一般是采用HASH分堆的办法,即先计算关联键的HASH值,再将相同HASH值的记录放到一起再做遍历对比。每一个JOIN都要做一轮这样的运算。如果数据量相对于内存并不是很大,可以事先全.........【阅读全文】

阅读(20433) | 评论(0) | 转发(0)

发布时间:2021-01-22 16:26:07

TopN是常见的运算,用SQL写出来是这样(以Oracle为例):        select * from (select * from T order by x desc) where rownum<=N 这个SQL的运算逻辑从其语句上看,要先做排序(Order by),然后再取出前N条。我们知道,排序是个非常慢的动作,复杂度很高(n*logn),如果涉及数.........【阅读全文】

阅读(1455) | 评论(0) | 转发(0)

发布时间:2021-01-22 16:03:53

我们知道,大数据运算性能的瓶颈常常是在外存(也就是硬盘)IO上,因为外存访问性能要比内存低一两个数量级。因此,做性能优化时,减少硬盘的访问量有时要比减少CPU计算量更为重要。同一个任务,如果能使用硬盘访问量更少的算法,即使CPU计算量不变甚至略多一点,也会获得更好的性能。分组汇总需要对数据集进行遍历。.........【阅读全文】

阅读(862) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册