hypopg
假设索引,用于创建一个虚拟索引检验执行计划
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
hypopg | 1.4.3 | FEAT | PostgreSQL | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 2790 | hypopg | 否 | 是 | 否 | 是 | 否 | 是 | - |
| 相关扩展 | online_advisor pg_qualstats index_advisor pg_hint_plan pg_stat_plans plan_filter pg_track_optimizer pg_strom pg_orca pg_regresql |
|---|---|
| 下游依赖 | index_advisor |
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PGDG | 1.4.3 | 1817161514 | hypopg | - |
| RPM | PGDG | 1.4.3 | 1817161514 | hypopg_$v | - |
| DEB | PGDG | 1.4.3 | 1817161514 | postgresql-$v-hypopg | - |
安装
您可以直接安装 hypopg 扩展包的预置二进制包,首先确保 PGDG 仓库已经添加并启用:
BASH
使用 pig 或者是 apt/yum/dnf 安装扩展:
安装
BASH
pig
BASH
dnf
BASH
apt
BASH
创建扩展:
SQL
用法
HypoPG 允许创建仅存在于当前会话中的假想(虚拟)索引,这些索引可被 EXPLAIN(不带 ANALYZE)在查询规划时考虑。这使得无需实际创建索引即可测试索引对查询的影响。
函数
| 函数 | 描述 |
|---|---|
hypopg_create_index(query text) | 使用 CREATE INDEX 语法创建假想索引 |
hypopg_list_indexes() | 列出当前会话中的所有假想索引 |
hypopg_drop_index(oid) | 通过 OID 删除特定假想索引 |
hypopg_reset() | 删除所有假想索引 |
hypopg() | 以类似 pg_index 的格式返回假想索引 |
工作流程
创建测试表并查看基线执行计划:
SQL
创建假想索引:
SQL
查看使用假想索引后的执行计划:
SQL
列出和管理假想索引:
SQL
限制
- 只有不带
ANALYZE的EXPLAIN才会考虑假想索引 - 假想索引仅存在于当前后端会话中
- 其他并发连接不受影响
- 索引名称和部分 CREATE INDEX 选项会被忽略