【参赛作品10】openGauss之indexadvisor测试与总结

测试种类:单query索引推荐、虚拟索引推荐(由于数据限制没有进行workload测试)

1. 测试的表数据量如下:在test数据库下的aka_name、customer表。

aka_name为60多万条数据(取自imdb数据集数据中一个表的数据)、customer为4条数据(自己创建的)。

在这里插入图片描述

2.单query索引推荐:gs_index_advise 用于针对单挑查询语句生成推荐索引

(1)where语句只有一个属性的情况
在这里插入图片描述

(2)where语句有多个属性的情况
① 两个属性,范围查找.只推荐了id,没有推荐person_id。发现哪个属性在前面就推荐谁。
在这里插入图片描述

②三个属性,两个范围查找,一个=精准查找.推荐id与=的属性。
③四个属性,两个like模糊查询。 like属性不给推荐。
④五个属性,两个like模糊查询。 like属性不给推荐。
⑤五个属性,一个like模糊查询,一个=。 like不给于推荐,=给予推荐。
⑥五个属性,一个like精准查询,一个=。 like依旧不给于推荐索引。
⑦五个属性,两个=。 =的属性全部给予推荐索引。
在这里插入图片描述

(3)order by 与 group by

3.虚拟索引

①hypopg_create_index:创建虚拟索引。
在这里插入图片描述

②hypopg_display_index:显示所有创建的虚拟索引信息。
hypopg_drop_index:删除指定的虚拟索引。
hypopg_reset_index:清除所有虚拟索引。
hypopg_estimate_size:估计指定索引创建所需的空间大小。
在这里插入图片描述

总结如下:

目前对gauss的单索引推荐和虚拟索引推荐进行了测以及结果情况如下:

  • 单索引推荐:适用于表中数据量大的情况,数据量过小不会进行推荐。

(1)当where中的查询条件只有一个的时候,推荐单一索引,如只有id在where中,只推荐id为索引;当where中的查询条件有多个的时候推荐多重索引,如id,name在where中被当做条件,则一起被推荐为联合索引,但是如果同时存在id、person_id则默认推荐id( 目前不知道原因)
(2)当query中除了where这个语句时,还存在order by 和 group by等条件时,将where、order by、group by中的属性全部作为联合索引进行推荐。
(3)使用like模糊查询时或精准查询都不对该属性进行索引建立,并且=属性一定给予索引推荐建立。
(4)当query中的条件过多时存在的属性也超过三个时,依旧推荐联合属性是在三个以上,会不会导致推荐索引过多从而性能下降,这个有待商榷,最好推荐索引中的属性在三个以内最好。不过这个可能需要通过DRL来学习,判断究竟选择一条query中的哪几个属性来建立索引。

  • 虚拟索引

(1)通过使用hypopg这个建立虚拟索引可以加快查询速度,具体可以通过explain命令发现cost得到了很大程度上的减少,并且会显示在什么地方建立虚拟索引达到这种效果的。
(2)同时发现openGuass的index_advior在虚拟索引上和论文中的索引推荐都使用到hypopg这个工具,都是用于创建虚拟索引,进行索引推荐,不同的地方可能在于论文中使用了DRL进行学习以及建立了DQN模型,论文中找到全部能够建立的索引候选项,都是可以在一定程度上减少cost的,但是具体上不知道是哪一种的索引候选项能够使cost最小,然后通过DQN来学习,但是通过学习最终的Q-value不一定是全局最优的,但一定是局部最优的。所以就是gauss可能就是更加hypopg进行虚拟的创建得到一个索引,然后通过改索引在一定程度上对query进行了优化,而论文中则是先获取所有可能建立索引的索引候选项,然后通过学习来从所有的索引候选项里面找到一个最优的索引。

  • workload级别索引推荐

暂未测试。
在这里插入图片描述

Gauss松鼠会是汇集数据库爱好者和关注者的大本营,
大家共同学习、探索、分享数据库前沿知识和技术,
互助解决问题,共建数据库技术交流圈。
openGauss官网
  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Gauss松鼠会

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

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

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

打赏作者

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

抵扣说明:

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

余额充值