巧用复合索引,优化查询性能

了解更多Greenplum技术干货,欢迎访问Greenplum中文社区网站

​复合索引,也称作多字段索引,是指建立在表的多个字段上的索引,它是数据库系统中广泛支持的索引使用方式,Greenplum也不例外。在之前的文章中,我们已经介绍了Greenplum的默认索引——B树索引。本文将对Greenplum中的复合索引以及相关的最佳实践进行简要介绍。《深入浅出Greenplum内核》系列直播正在进行中,本周五Greenplum原厂内核研发张桓将为大家介绍Greenplum排序算法,欢迎关注。

建立测试数据

首先我们建立一张测试表:student,它有4个字段:

  • id,学生唯一编号

  • score,考试分数,0~100之间

  • class,学生班级,1~10之间

  • comment,学生评价,本示例中插入一个随机字符串

article=# create table student (id int, score int, class int, comment varchar(128)) distributed by (id);
CREATE TABLE

随后插入约2千万的测试数据,其中少量学生不及格(第2个insert语句):

article=# insert into student (id, score, class, comment) SELECT g, random() * 40 + 60, random() * 10 + 1, md5(g::text) FROM generate_series(1,20000000) as g;
INSERT 0 20000000
​
article=# insert into student (id, score, class, comment) SELECT g, random() * 60, random() * 10 + 1, md5(g::text) FROM generate_series(20000001,20010000) as g;
INSERT 0 10000

然后在(scor

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值