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

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

背景


1、产品的问题点

  • PG 不支持分区索引

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

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

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

  • 当单表较大时

4、会导致什么问题?

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

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

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

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

  • 管理成本增加

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

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



相关文章
|
存储 Oracle 关系型数据库
PostgreSQL体系架构介绍
PostgreSQL体系架构介绍
1892 0
PostgreSQL体系架构介绍
|
10月前
|
存储 SQL 关系型数据库
AI时代,当 MySQL 遇见列式存储引擎 DuckDB
在AI浪潮席卷全球的今天,有人认为关系型数据库已走向黄昏,MySQL 的生命力正在被边缘化。但事实真的如此吗?AliSQL,作为 MySQL 的重要分支,自2010年诞生以来,始终默默支撑着阿里巴巴集团核心业务的高并发、高可用需求。它从未消失,只是沉寂太久。 2026年,AliSQL社区的一帮开发者们,开始为AliSQL注入创新的血液!这是他们的第一篇,系统阐述了MySQL深度融合DuckDB的重大技术实践。这不仅是对“MySQL 只擅长 TP”这一行业共识的突破性回应,更是一次兼具工程魄力与架构远见的创新。
AI时代,当 MySQL 遇见列式存储引擎 DuckDB
|
缓存 测试技术 API
京东 item_search 接口对接全攻略:从入门到精通
京东item_search接口是按关键字搜索商品的核心API,支持多条件筛选与排序,适用于电商、比价及市场分析。本文详解其对接流程、参数使用、签名生成、代码实现及最佳实践,助力开发者高效构建稳定、合规的商品搜索功能。
|
数据库
达梦数据库最大连接数处理
达梦数据库最大连接数处理
894 0
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
|
消息中间件 监控 网络协议
Python中的Socket魔法:如何利用socket模块构建强大的网络通信
本文介绍了Python的`socket`模块,讲解了其基本概念、语法和使用方法。通过简单的TCP服务器和客户端示例,展示了如何创建、绑定、监听、接受连接及发送/接收数据。进一步探讨了多用户聊天室的实现,并介绍了非阻塞IO和多路复用技术以提高并发处理能力。最后,讨论了`socket`模块在现代网络编程中的应用及其与其他通信方式的关系。
1447 3
|
SQL 存储 关系型数据库
详解 SQL 中的 UNION、MINUS 和 INTERSECT 命令
【8月更文挑战第31天】
1635 0
|
运维 网络协议 算法
不为人知的网络编程(十六):深入分析与解决TCP的RST经典异常问题
本文将从TCP的RST技术原理、排查手段、现网痛难点案例三个方面,自上而下、循序渐进地给读者带来一套完整的分析方法和解决思路。
1489 0

热门文章

最新文章