ITPub博客

首页 > 数据库 > 数据库开发技术 > openGauss学习笔记-253 openGauss性能调优-使用Plan Hint进行调优-INDEX HINTS

openGauss学习笔记-253 openGauss性能调优-使用Plan Hint进行调优-INDEX HINTS

原创 数据库开发技术 作者:shuchaoyang 时间:2023-12-30 07:00:00 0 删除 编辑

openGauss学习笔记-253 openGauss性能调优-使用Plan Hint进行调优-INDEX HINTS253.1 注意事项253.2 功能描述253.3 语法格式253.4 参数说明253.5 示例

openGauss学习笔记-253 openGauss性能调优-使用Plan Hint进行调优-INDEX HINTS

253.1 注意事项

兼容限制:

  • 功能仅在B兼容模式下生效。

  • 目前仅支持MySql数据库中完整语法的部分语法及功能。

  • 语法仅在查询语句中使用此功能时生效。

253.2 功能描述

为指定的表在扫描时显示的指定期望使用的索引名称。

  • 使用USE INDEX 指定的索引,会在扫描时综合考虑使用此索引扫描的代价和顺序扫描的代价,会选择代价更低的使用。

  • 使用FORCE INDEX 指定的索引,如果可以使用索引扫描,会在扫描时强制使用此索引进行扫描。

  • FORCE INDEX 和USE INDEX 不能同时作用在同一张表中。

  • 多个index_hint 连用等价index_list 中写多个索引名字。

253.3 语法格式

tbl_name [ partition_clause ] [ [ AS ] alias ] [ index_hint_list ]

index_hint_list:
   index_hint [ index_hint ]
index_hint:
   USE {INDEX | KEY} ( [ index_list ] )
| FORCE { INDEX | KEY } ( index_list )
index_list:
   index_name [ , index_name ] ...

253.4 参数说明

  • index_list

    索引的名称,使用逗号分隔。

  • tbl_name

    泛指一个表名。

253.5 示例

openGauss=# explain (costs off,verbose true  )select * from db_1097149_tb force key (index_1097149_4) where col2= 3 and col4 = 'a';
                       QUERY PLAN                        
----------------------------------------------------------
Index Scan using index_1097149_4 on public.db_1097149_tb
  Output: col1, col2, col3, col4
  Index Cond: ((db_1097149_tb.col4)::text = 'a'::text)
  Filter: (db_1097149_tb.col2 = 3)
(4 rows)


👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!


PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我吧!


原文作者:超哥的IT私房菜;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
专注于IT系统集成、运维、架构二十年的IT职场老兵,拥有CCNA、OCA、OCP、PGCA、PGCE认证证书,公众号:超哥的IT私房菜,知识星球:超哥的IT私房菜,目前是多家IT厂商的咨询顾问。

注册时间:2021-08-27

  • 博文量
    552
  • 访问量
    303605