- 文档首页
AI 原生 BaaS 平台 Supabase 版
用户指南
PostgreSQL 引擎用户指南
插件
智能索引推荐(index_advisor)
智能索引推荐(index_advisor)
index_advisor 是一款实用的 PostgreSQL 插件,它能够自动分析给定的 SQL 查询语句,并推荐可能提升查询性能的最优索引。该插件通过在内部利用 hypopg 创建虚拟索引并评估其对查询计划的影响,来生成具体的索引创建建议。
它适用于以下场景:
- SQL 调优:当面对一个慢查询时,可以用它来快速获取索引优化建议。
- 开发阶段:在开发过程中,辅助开发者为新功能涉及的复杂查询设计合理的索引策略。
- 依赖 hypopg:index_advisor 的功能完全依赖于 hypopg 插件。在安装 index_advisor 时,必须确保 hypopg 也被一同安装和启用。
- 索引类型限制:目前,index_advisor 仅支持推荐单列 B-tree 索引。对于多列索引或其它类型的索引,它无法提供建议。
- 参数化查询:当分析包含参数(如 $1, $2)的预备语句(Prepared Statement)时,如果插件无法自动推断参数的数据类型,您可能需要在查询字符串中为参数显式添加类型转换,例如 ... WHERE user_id = $1::integer。
执行 CREATE EXTENSION 命令来安装 index_advisor。使用 CASCADE 子句可以确保其依赖的 hypopg 插件也一并被自动安装。
如果不再需要,可以执行以下命令来卸载插件。
注意
卸载 index_advisor 不会自动卸载 hypopg。如果 hypopg 也不再需要,需单独卸载。
index_advisor 的核心功能通过 index_advisor() 函数提供。该函数接收一个 SQL 查询字符串作为输入,并返回一个或多个索引创建建议。
index_advisor(sql_query TEXT)
- index_advisor 同样能处理包含多表连接的复杂查询。
最近更新时间:2026.02.27 20:56:03