![]() |
1
1
数据库设计对于这样的大表(“1k个键,每个键有5个值”),我建议优化存储,例如:
也有助于索引性能。
并考虑
划分
. 列表分区打开
每个分区一个
但我强烈建议至少升级到 邮政10 首先,它增加了 "declarative partitioning" . 使管理分区更加容易。 更好的是,跳到 邮政11 (目前是beta版),它增加了分区的主要改进(包括性能改进)。最值得注意的是,为了你的目标 以获得最佳的查找性能 ,引用 chapter on partitioning in release notes for Postgres 11 (currently beta) :
索引
从
无分区:
这几乎与实现pk的索引相同
所以我添加了一个
在博士后10或更晚的时候考虑
在这种特殊情况下,您甚至可以使用pk约束来避免重复索引并保持表的最小大小。视情况而定。对于FK约束或类似的约束,可能需要它。见:
一
主旨索引
就像你已经怀疑的可能更快。我建议保留你的原稿
表达
查询需要与索引匹配:
相当于你的原作。
打开列表分区
用一个
每个单独的表格
相关: |
![]() |
developer · 带外键的SQL表设计 6 月前 |
![]() |
relatively_random · 确保两个表之间一致的共同参考 8 月前 |
![]() |
b126 · 在两种不同的Oracle模式上执行相同查询的速度差异很大 1 年前 |
![]() |
robertspierre · 在多对多关系中自动删除未引用的行 1 年前 |
![]() |
Michael Samuel · MYSQL在以下情况下自动创建索引 7 年前 |