gpt4 book ai didi

postgresql - 每个表的索引数

转载 作者:行者123 更新时间:2023-11-29 12:31:25 25 4
gpt4 key购买 nike

  1. 根据您的经验,Postresql 中每个表的索引数量是否有实际限制?理论上,根据 documentation 没有, 引文:“每个表的最大索引数无限制” 但是:

  2. 是不是索引越多查询越慢?如果我有数十个与数百个甚至数千个索引,这会有什么不同吗?我在阅读有关 postgres 的文档后问 partial indexes这让我想到了一些非常有创意的解决方案,但是需要大量索引。

最佳答案

以几种不同的方式拥有大量索引会产生开销:

  1. 空间消耗,当然,使用部分索引会降低空间消耗。
  2. 查询优化,通过使优化程序计划的选择可能更加复杂。
  3. 表修改时间,通过插入新行或删除或修改当前行时修改索引的额外工作。

默认情况下,我倾向于大量使用索引:

  1. 空间通常很便宜
  2. 带有绑定(bind)变量的查询只需要优化一次
  3. 与修改行相比,查找行的频率通常要高得多,因此设计系统以高效查找行通常比减少修改行的开销更为重要。
  4. 缺少所需索引的影响可能非常大,即使索引只是偶尔需要。

我曾在一个 Oracle 系统上工作过,该系统有超过 200 列的非规范化报告表,其中 100 列已编入索引,这不是问题。部分索引会很好,但 Oracle 不直接支持它们(您使用相当不方便的 CASE hack)。

所以我会继续发挥创意,只要您了解利弊,最好您还可以衡量您对系统的影响。

关于postgresql - 每个表的索引数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18507758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com