【问题标题】:What is the index tuple maximum size in postgres?postgres 中的索引元组最大大小是多少?
【发布时间】:2020-01-16 14:49:22
【问题描述】:

关于INCLUDE 子句,我引用https://www.postgresql.org/docs/11/sql-createindex.html

在向索引中添加非键列时要谨慎,尤其是宽列。如果索引元组超过索引类型允许的最大大小,数据插入将失败。在任何情况下,非键列都会复制索引表中的数据并增大索引的大小,从而可能会减慢搜索速度。

我想知道这是什么 index tuple max size 用于可能导致插入失败的 btree 索引。

用例:我正在考虑 INCLUDE将 json 列(

【问题讨论】:

    标签: postgresql postgresql-11


    【解决方案1】:

    它是块大小的函数,略小于 btree 索引的 1/3。对于默认的 8kB 块大小,最大为 2704 字节:

    insert into foo select string_agg(x::text,'') from generate_series(1,940) f(x);
    ERROR:  index row size 2728 exceeds btree version 4 maximum 2704 for index "foo_pkey"
    

    【讨论】:

      猜你喜欢
      • 2021-12-14
      • 1970-01-01
      • 2013-01-09
      • 2011-03-16
      • 1970-01-01
      • 2013-02-26
      • 2012-06-30
      • 2011-03-13
      • 1970-01-01
      相关资源
      最近更新 更多