【DB吐槽大会】第75期 - PG 不支持索引失效功能

简介: 大家好,这里是DB吐槽大会,第75期 - PG 不支持索引失效功能

背景


1、产品的问题点

  • PG 不支持索引失效(invalid index)功能

2、问题点背后涉及的技术原理

  • PG 执行计划会考虑使用索引, 除非这个索引被标记为invalid状态.
  • 当数据发生变化时, invalid状态的索引依旧会被更新.

3、这个问题将影响哪些行业以及业务场景

  • 通用

4、会导致什么问题?

  • 当想临时排除某个索引对某些SQL执行计划的影响时, 只能drop index. 如果DROP后还有其他SQL想用到这个索引又不得不加上, 耗时而且浪费资源.
  • 不清楚某个索引是否被用到, 直接DROP的话, 如果索引还要被用到, 再创建索引, 耗时而且浪费资源.

5、业务上应该如何避免这个坑

  • 直接修改元数据, 实现invalid索引效果. 《PostgreSQL 改元信息 invalid index》
  • 如果只是想清理未使用过的索引, 可以查看 pg_stat_all_indexes、pg_statio_all_indexes 索引统计信息来判断索引是否被使用.

6、业务上避免这个坑牺牲了什么, 会引入什么新的问题

  • 改元数据的风险较大

7、数据库未来产品迭代如何修复这个坑

  • 建议支持invalid index语法. invalid index 继续保持索引的更新, 随时可以改回valid.



相关文章
|
关系型数据库 数据库 PostgreSQL
【DB吐槽大会】第38期 - PG 不能自动创建(扩展)分区
大家好,这里是DB吐槽大会,第38期 - PG 不能自动创建(扩展)分区
|
存储 JSON 搜索推荐
【DB吐槽大会】第35期 - “富人”的烦恼?PG 不会自动选择索引类型
大家好,这里是DB吐槽大会,第35期 - “富人”的烦恼?PG 不会自动选择索引类型
|
关系型数据库 数据库 索引
【DB吐槽大会】第32期 - PG 没有全局索引
大家好,这里是DB吐槽大会,第32期 - PG 没有全局索引
|
JSON 固态存储 关系型数据库
【DB吐槽大会】第43期 - PG 倒排索引启动和recheck代价高
大家好,这里是DB吐槽大会,第43期 - PG 倒排索引启动和recheck代价高
|
SQL 监控 关系型数据库
【DB吐槽大会】第40期 - PG 缺少qps计数器
大家好,这里是DB吐槽大会,第40期 - PG 缺少qps计数器
|
SQL 存储 关系型数据库
【DB吐槽大会】第60期 - PG 只读实例不支持写操作
大家好,这里是DB吐槽大会,第60期 - PG 只读实例不支持写操作
|
SQL Oracle 关系型数据库
【DB吐槽大会】第49期 - PG 不支持打印慢SQL锁等待信息
大家好,这里是DB吐槽大会,第49期 - PG 不支持打印慢SQL锁等待信息
|
SQL Oracle 关系型数据库
【DB吐槽大会】第39期 - PG 物化视图不支持基于log的增量刷新
大家好,这里是DB吐槽大会,第39期 - PG 物化视图不支持基于log的增量刷新
|
SQL 消息中间件 存储
【DB吐槽大会】第33期 - PG 逻辑复制不支持DDL
大家好,这里是DB吐槽大会,第33期 - PG 逻辑复制不支持DDL
|
关系型数据库 物联网 数据库
【DB吐槽大会】第28期 - PG 每次只扩展1个block
大家好,这里是DB吐槽大会,第28期 - PG 每次只扩展1个block