#大数据SQL技巧#为什么开发规范会禁止Select * 写法

从SQL任务稳定性、性能方面考虑如下情况

  • 1.权限问题:在MaxCompute平台
    A厂数据开发平台
    SQL任务如果要引用外部project表需要先申请表字段权限,如果外部表新增字段,线上任务因为没有新字段权限导致任务运行失败。

  • 2.字段数不同问题:如果写表采用"insert … select * from table_x"的方式,如果table_x新增字段也会因为字段数不匹配导致任务失败。同样在使用union all语句时也会有这个问题。

  • 3.性能问题:select * 会读取所有字段增加开销。但是由于MaxCompute在生成执行计划的时候已经做优化了,未使用的字段不读到内存,这个写法实际不会导致性能变差。

    Select * 写法可以减少代码行数,让代码更简洁,将字段罗列出来能够更清晰展示需要使用到的字段,并且避免许多问题。
    如此粗暴的规范必然是经过许多血泪教训总结出来的。除非你非常明确这么写会产生什么影响,不然还是遵照规范来吧。
    你知道其它相关案例吗?欢迎评论补充。

下次我们聊聊JOIN,你知道怎么通过JOIN实现笛卡尔积吗?

(觉得写得不错就点个赞吧, 头条号: 风控数据开发-唔崎 欢迎关注)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GDRetop

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值