海量数据处理的SQL性能优化

本文详细介绍了海量数据处理中的SQL性能优化,包括设计阶段的优化如表设计的范式化与反范式化、索引设计及分区键选择,以及执行阶段的优化如语句简化、匹配条件优化、JOIN操作的高效使用等,旨在提高大数据处理的效率。
摘要由CSDN通过智能技术生成

1      设计阶段的优化

1.1     表设计

1.1.1    范式化

数据库设计三范式定义:

1.  第一范式:每个字段只包含最小的信息属性。

例如常见的学号:入学年份+班级+编号,是不符合第一范式的,需要将其拆解为:入学年份、班级、编号。

2.  第二范式:(在满足第一范式基础上)模型含有主键,非主键字段依赖主键。

3.  第三范式:(在满足第二范式基础上)模型非主键字段不能相互依赖

例如订单表,一般来说订单表的主键是订单号。在此表中,字段下单时间、客户ID是符合第二范式的,而客户姓名这个字段就不满足第二范式,应当放入客户表内,组成客户ID客户姓名。

范式化的设计能有效降低数据冗余,更新方便快速,降低了数据不一致的风险。故常见于联机交易型的数据库。

1.1.2    反范式化

有意不符合范式化的设计,常见于反第二第三范式。

符合三范式的设计在降低冗余的同时也带来了问题。如果需要对数据进行加工处理(例如具有订单表、客户表,需要统计某个年龄的客户的订单总金额)的时候,需要不断进行关联操作。当订单数量极为庞大的时候,这个关联操作所需要消耗的资源将会相当巨大,导致查询性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值