【DB吐槽大】,第31期 - PG 不支持分区索引

简介: 大家好,这里是DB吐槽大会,第31期 - PG 不支持分区索引

背景


1、产品的问题点

  • PG 不支持分区索引

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

  • PG的索引支持到表级别, 如果是分区表那么每个分区创建对应索引, 索引不能单独进行分区. 例如一个100亿条记录的单表, 如果要创建索引只能创建普通索引, 索引本身不能分区.

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

  • 当单表较大时

4、会导致什么问题?

  • 单表较大时, 索引也会非常庞大, 可能带来一些问题:
  • 创建索引的耗时变长,
  • 索引深度变大导致性能下降,
  • 索引的垃圾回收时间变长.
  • 如果系统中有多个块设备、多个表空间, 由于1个索引只能存放在1个表空间内, 那么无法很好的利用多个块设备的性能.

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

  • 避免单表(或单一分区)的数据量过大, 例如不超过10亿条记录(经验). 超过后建议分区.
  • 如果更新频率巨大, 例如建议单个分区不超过1亿条(经验)

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

  • 管理成本增加

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

  • 内核层面支持分区索引, 如果是分区表则可以支持指定其他索引分区键.
  • 根据某些表达式、字段HASH、范围分区
  • 每个索引分区可以指定不同的表空间.



相关文章
|
网络协议 IDE Linux
mongoose使用详细 -- 如何通过mongoose搭建服务器
mongoose使用详细 -- 如何通过mongoose搭建服务器
2483 0
|
前端开发 Java Docker
使用Docker容器化部署Spring Boot应用程序
使用Docker容器化部署Spring Boot应用程序
|
10月前
|
关系型数据库 分布式数据库 PolarDB
PolarDB开源数据库进阶课1 搭建共享存储集群
在笔记本上构建PolarDB RAC环境,本文介绍了一种适用于Windows、macOS和Linux的方法:通过将宿主机上的文件模拟为块设备,并在多个Docker容器中使用loop设备共享该文件。此方法解决了macOS不支持直接挂载块设备的问题。
365 2
|
数据可视化 测试技术 PyTorch
昆仑万维「天工」Skywork-13B魔搭社区首发开源!魔搭最佳实践来了!
作为国内最具诚意的开源百亿大模型,「天工」Skywork-13B系列无需申请即可实现商用,授权链路极简,且无用户数、行业、公司规模限制。
|
JavaScript 开发工具 git
大事件项目17----Vue项目引入Echarts
大事件项目17----Vue项目引入Echarts
大事件项目17----Vue项目引入Echarts
|
人工智能 自然语言处理
🚀从菜鸟到大师,一文读懂生成式大模型“提示词工程”的进阶秘籍✨
【8月更文挑战第1天】在人工智能领域,生成式大模型如GPT和DALL-E正引领着创意的新纪元。本文通过案例逐步解析“提示词工程”的精髓:从基础的直接提示,进化到富含细节与情感的进阶版本,再到结合模板与随机性的大师级应用。例如,创作环保主题文章时,从简单指示到强调个人行动与自然之美;生成印象派风格的日出海景图时,详述光线、色彩等元素。随着技巧提升,还可利用基础模板加随机提示的方式确保创意与质量并重。掌握这些秘籍,你也能驾驭AI,释放无限可能。
501 7
|
Java 调度
如何合理设置Java线程池大小
如何合理设置Java线程池大小
372 0
|
应用服务中间件 nginx 监控
|
SQL 关系型数据库 数据库
postgresql数据库|数据库实操----表复制详解
postgresql数据库|数据库实操----表复制详解
432 0