BI-SQL丨INDEX

作者: Fabric丨白茶 | 来源:发表于2021-12-26 15:29 被阅读0次

    INDEX

    INDEX,索引。索引在数仓中属于高级技能之一,也是很多HR面试的时候喜欢问的点。

    索引可以用来对数据进行排序,并以此来加快搜索和排序。

    这点和SUBSTITUTEWITHINDEX函数有点像。白茶在之前描述这个函数的时候曾经说过,这个函数属于高阶函数之一,出场率也不是很高,只有特定的场景可以使用。

    这点和SQL中的INDEX有点类似,通常可以用来为原本的维度列新增索引列,以方便某些时候对维度的计算,可以将原本的文本信息转化为可参与计算的数值。

    而在SQL中,INDEX表现的则更加纯粹。

    基础语法

    CREATE INDEX 索引名称
    ON 表名称 (列名1,列名2...)
    --我们可以设定根据一个维度索引,也可以是多个
    

    注意事项

    • INDEX可以加快查询的速度,但是会增加维护的工作。
      例如:增删改都需要注意对INDEX的动态更新。

    • INDEX会增大存储空间。

    • 有的数据不适合做索引,例如我们国家的省份,数据量级不多。

    • 经常作为排序依据的数据,适合做索引。

    面试场景:
    数据库索引失效了,可能的原因是什么?
    答:
    有可能是数据变更的时候,未对索引进行维护更新。

    使用实例

    案例数据:

    在白茶本机的数据库中,存在名为“TEST”的数据库,存在名为“产品表”的案例数据。

    例子1:

    根据商品名称,新增一列INDEX。

    CREATE INDEX Product_INDEX
    ON 产品表 (商品名称)
    

    结果如下:

    例子2:

    根据商品名称,新增一列INDEX,要求不允许索引有重复项。

    CREATE UNIQUE INDEX Product_DIS_INDEX
    ON 产品表 (商品名称)
    

    结果如下:

    例子3:

    根据商品名称,新增一列INDEX,要求不允许索引有重复项,且需要根据商品名称降序。

    CREATE UNIQUE INDEX Product_DESC_INDEX
    ON 产品表 (商品名称 DESC)
    

    结果如下:

    例子4:

    根据商品名称和商品分类,新增一列INDEX,要求不允许索引有重复项。

    CREATE UNIQUE INDEX GroupSort
    ON 产品表 (商品名称, 商品分类)
    

    结果如下:

    这里是白茶,一个PowerBI的初学者。

    相关文章

      网友评论

        本文标题:BI-SQL丨INDEX

        本文链接:https://www.haomeiwen.com/subject/qljawltx.html