hive sql优化基础

文章目录


提示:本文非原创。记录此文的目的:再学习和梳理sql 优化知识点,方便以后遇到类似问题方便查阅以及快速处理。

一、数据倾斜分类

根据使用经验总结,引起数据倾斜的主要原因有如下几类:

  • Join

  • GroupBy

  • Count(Distinct)

  • ROW_NUMBER(TopN)

  • 动态分区

其中出现的频率排序为JOIN > GroupBy > Count(Distinct) > ROW_NUMBER > 动态分区。

二、Join倾斜

1.大表Join小表

使用MAPJOIN HINT语法,如下所示。

sql 复制代码
SELECT  /*+ mapjoin(t2,t3)*/
        t1.ip
        ,t1.is_anon
        ,t1.user_id
        ,t1.user_agent
        ,t1.referer
        ,t2.ssl_ciphers
        ,t3.shop_province_name
        ,t3.shop_city_name
FROM    <viewtable> t1
LEFT OUTER JOIN (<other_viewtable>) t2
ON t1.header_eagleeye_traceid = t2.eagleeye_traceid
LEFT OUTER JOIN (  SELECT  shop_id
                            ,city_name AS shop_city_name
                            ,province_name AS shop_province_name
                    FROM    <tenanttable>
                    WHERE   ds = MAX_PT('<tenanttable>')
                    AND     is_valid = 1
                ) t3
ON t1.shopid = t3.shop_id
相关推荐
2601_962680221 小时前
数据分析面试常考的SQL题和业务题分别是哪几类?
sql·面试·数据分析
子非鱼a3 小时前
【SQL注入】 ShadowCart
sql
程序员阿鹏4 小时前
如何实现MySQL分库分表?
数据结构·数据库·sql·mysql·缓存
liangsheng_g5 小时前
Spring事务传播行为分派与挂起恢复源码实战
数据库·sql·spring
杨云龙UP6 小时前
MySQL Host is blocked because of many connection errors 导致 JDBC 连接失败排查与解决
linux·运维·网络·数据库·sql·mysql·登录失败
旺仔不是程序员8 小时前
复合索引最左前缀原则:PostgreSQL 的 WHERE 为什么必须命中第一列
数据库·后端·sql
旺仔不是程序员8 小时前
字段类型不一致:PostgreSQL 报错与索引失效的第一元凶
数据库·后端·sql
geovindu8 小时前
sql: Data Modeling Patterns
数据库·sql·设计模式·sqlserver
瀚高PG实验室8 小时前
瀚高数据库如何克隆表
数据库·sql·postgresql·瀚高数据库
bksczm10 小时前
MySQL基础篇之表的增删查改(CRUD)细则
sql·mysql