BI-SQL丨INDEX
2023-04-18 16:13:51 时间
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 产品表 (商品名称, 商品分类)
结果如下:
相关文章
- OpenMLDB 研发负责人第四范式系统架构师卢冕:开源机器学习数据库OpenMLDB:线上线下一致的生产级特征平台
- 为什么需要人工智能来推动绿色能源转型?
- 外媒:截至6月,韩国5G用户已超1600万
- 在提升和转换之后优化云计算效率的十个步骤
- 5G和物联网有助于改变世界的五种方式
- 量子计算将如何改变人工智能?
- 5G和物联网改变世界的四种方式
- 什么是单对以太网(SPE),它是如何在工业应用中使用的?
- 未来的网络基础设施是智能化的
- 计算机网络的体系结构篇
- 多云与混合云场景下的数据同步方案之Kafka
- IDC:第一季度云基础设施支出下滑全年有望实现增长
- 浅谈 RocketMQ、Kafka、Pulsar 的事务消息
- 亚马逊、Google和微软发起行业倡议 更好保护云数据
- 阿里云再发力云原生数据库,打造一站式在线数据处理平台
- 5G VS Wi-Fi6 技术上有何不同 应用上谁更成熟
- 5G新通话概念和关键技术
- 赌你看不懂:分布式存储系统的数据强一致性挑战
- 量子人工智能即将到来,我们准备好了吗?
- 快速界定故障:Socket Tracer网络监控实践