Pyr*_*cks 2 postgresql postgresql-11
我引用https://www.postgresql.org/docs/11/sql-createindex.html关于INCLUDE条款:
在将非键列添加到索引时保守一点是明智的,尤其是宽列。如果索引元组超过索引类型允许的最大大小,数据插入将失败。在任何情况下,非键列都会从索引的表中复制数据并使索引的大小膨胀,从而可能减慢搜索速度。
我想知道这index tuple max size对于可能插入失败的 btree 索引是什么。
用例:我正在考虑INCLUDE将 json 列(<1000 个字符)添加到唯一索引。
它是块大小的函数,对于 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"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
706 次 |
| 最近记录: |