Chinaunix首页 | 论坛 | 博客

-

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

2021年(19)

2020年(81)

2019年(68)

2018年(4)

我的朋友

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

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

阅读(20440) | 评论(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),如果涉及数.........【阅读全文】

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

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

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

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

发布时间:2021-01-22 15:56:02

一、  问题背景与适用场景在《性能优化技巧:有序归并》中我们验证了有序归并算法提高关联性能的效果,那么还有没有进一步提升的空间呢?能不能再减少数据的读取量从而再提速呢?通常主子关联后还会再施加更多运算,比如过滤。有序归并算法将主子表先分别读出再做关联,当其中一个关联表被过滤后剩.........【阅读全文】

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

发布时间:2021-01-22 15:35:42

一、   问题背景与适用场景在以前的文章中我们介绍过,关系数据库在进行表间关联时是使用HASH分段技术。设两个关联表的规模(记录数)分别是 N 和 M,则 HASH 分段技术的计算复杂度(关联字段的比较次数)大概是 SUM(Ni*Mi),其中 Ni 和 Mi 分别是 HASH 值为 i 的两表记录数,满足 N=SUM(Ni) 和 M=SUM(.........【阅读全文】

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

登录 注册