【DB吐槽大会】第73期 - PG 统计信息无法迁移

简介: 大家好,这里是DB吐槽大会,第73期 - PG 统计信息无法迁移

背景


1、产品的问题点

  • PG 统计信息无法迁移

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

  • PG 的优化器需要依靠统计信息来计算SQL的代价、选择性等.
  • 统计信息包括记录数、SIZE、每一列的高频词、柱状图、唯一值个数、等等.
  • PG 支持表达式统计信息、自定义多列统计信息等.
  • PG 支持手工的analyze, vacuum analyze语法来生成统计信息.
  • 但是PG的统计信息无法导出、导入, 如果发生备份恢复动作, 需要重新收集统计信息.

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

  • 通用
  • 通常发生在大版本升级、大量数据逻辑迁移或恢复的场景中.

4、会导致什么问题?

  • 大版本升级后, 无统计信息, 如果数据库立即开放给业务使用, 可能导致执行计划不准确, 引起性能问题甚至影响业务
  • 大量数据通过逻辑导出导入时, 导入结束后需要收集统计信息, 如果未及时收集统计信息就开放给业务使用的话, 可能导致SQL执行计划不准确, 引起性能问题甚至影响业务

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

  • 大版本升级、大量数据通过逻辑导出导入后, 收集统计信息后再开放给业务使用.

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

  • 收集统计信息需要扫描数据, 相比直接导出导入更耗时.

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

  • 希望内核层面支持统计信息导出、导入.
相关文章
|
机器学习/深度学习 算法 PyTorch
大规模模型训练tricks集锦
大规模模型训练tricks集锦
997 1
|
4月前
|
JSON 前端开发 关系型数据库
2026年的 ReAct Agent架构解析:原生 Tool Calling 与 LangGraph 状态机
本文介绍2026年演进版ReAct架构下的Research Brief Agent:摒弃脆弱的字符串解析(如"Thought:/Action:"),采用原生结构化工具调用(JSON Schema)、消息账本式State管理、自动引用提取与Postgres持久化,实现可复现、可审计、带真实URL引用的自动化研究简报生成。
455 2
2026年的 ReAct Agent架构解析:原生 Tool Calling 与 LangGraph 状态机
|
存储 JSON 前端开发
菜鸟之路Day39一一登录
本文介绍了登录功能的实现及其相关技术细节,包括会话管理、令牌认证和异常处理等内容。作者通过 Java 实现了一个基于用户名和密码的登录接口,调用服务层和数据库层完成用户验证。同时,文章深入探讨了三种会话跟踪技术:Cookie、Session 和 JWT 令牌。 在 JWT 部分,详细讲解了其生成与校验流程,实现了登录成功后返回 JWT 令牌的功能。此外,文章还介绍了过滤器(Filter)和拦截器(Interceptor)的概念及应用,演示了如何利用它们实现登录校验。 最后,为解决前后端交互中异常响应不统一的问题,定义了一个全局异常处理器 将系统异常以统一的 JSON 格式返回给前端。
394 0
|
机器学习/深度学习 自然语言处理 语音技术
《攻克LSTM语音识别“语速关”:技术新突破与解决方案》
在语音识别中,LSTM虽具强大序列建模能力,但对不同语速的适应性仍面临挑战。为此,可从数据增强(如语速扰动、多语速语料库)、模型改进(引入注意力机制、双向LSTM、增加深度宽度)、训练策略(分层训练、多任务学习、调整参数)及后处理(语速归一化、语言模型融合)等方面入手,全面提升LSTM对不同语速的适应性和识别性能。
663 7
|
XML 前端开发 JavaScript
Ajax与Axios,以及Apifox的入门使用
本文由blue编写于2025年3月20日,主要介绍了Ajax、Axios以及Apifox的入门使用。文章首先讲解了Ajax的概念与作用,通过原生代码示例展示了如何实现异步数据交互;接着引入Axios,说明其对Ajax的封装简化了开发流程,并给出Axios实现相同功能的代码;最后详细讲述了Apifox的基本用法,包括创建接口、设置参数及生成Mock数据,为前后端开发提供了便利工具。
516 0
|
数据可视化
【Axure教程】自动轮播的中继器表格
【Axure教程】自动轮播的中继器表格
【Axure教程】自动轮播的中继器表格
|
安全 Java 程序员
深入Java集合框架:解密List的Fail-Fast与Fail-Safe机制
本文介绍了 Java 中 List 的遍历和删除操作,重点讨论了快速失败(fail-fast)和安全失败(fail-safe)机制。通过普通 for 循环、迭代器和 foreach 循环的对比,详细解释了各种方法的优缺点及适用场景,特别是在多线程环境下的表现。最后推荐了适合高并发场景的 fail-safe 容器,如 CopyOnWriteArrayList 和 ConcurrentHashMap。
449 5
|
监控 网络安全 网络架构
DMZ 和防火墙之间的区别
【4月更文挑战第10天】
1616 2
|
网络协议 Oracle 关系型数据库
HCL与Pipe、Autoit和MobaXterm的组合使用
HCL与Pipe、Autoit和MobaXterm的组合使用
|
算法
泡泡龙游戏开发实战教程(5):核心查找匹配算法
泡泡龙游戏开发实战教程(5):核心查找匹配算法
512 0