Vertica的这些事(五)—— vertica优化

DELETE_VECTORS

数据模型:

1、  规范化你的表

2、  使用核实的压缩格式

表设计:

1、  使用分区

2、  定义主键外键

3、  默认的数字类型长度可能比实际需要的大。例如:NUMBERC 该类型默认的长度是38位,如果实际的长度比这个小,那你建表的时候最好加上适合的长度。

4、  对于一个True/False值,Boolean类型比char(1)类型和integer类型更快。

Projections

1、  Segmentation vs. Replication (unsegmented)简单的说,如果数据量大的话使用Segmentation,小的话使用unsegmented

2、  使用order by ,理想的order by 的字段应该全部在where查询字句中出现(详见另一篇文章【】)

3、  列长度的规范,不要一味的定义大长度,在过滤条件和join时的字段如果是字符类型,最好使用int类型。

4、  GROUP BY:使用group by 时,一定要explain查看执行计划,如果执行计划中使用的【GROUP BY HASH】这时候就要修改你的查询sql或者projection的,group by最好使用【GROUP BY PIPELINE】这种方式使用更少的内存,查询更快!

5、  清楚不必要的projection,多余的projection意味着查询是要花费更多的时间去选择。

6、  Projection中的order 字段首先选用过滤的字段,然后选用join使用的列。

7、  确保Projection数据均匀分布在各个节点上,以免查询时产生数据倾斜。

查询:

1、  避免使用in

2、  避免使用union

3、  Select 时避免使用*,查询时选择合适的列

4、  使用with子句

5、  避免使用别名,例如 groupby 1,2,3

6、  在子查询中使用orderby

7、  避免使用不等关系,例如:>=,not in 等

8、  对于复杂的sql,可以多使用临时表

9、  delete_vectors中的数据尽量清除

资源(Resources)

1、  PROFILE,查看查询所需要的内存

2、  建立专用的资源池

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

数据社

码字不易,谢谢支持!

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

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

打赏作者

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

抵扣说明:

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

余额充值