数据库版本 :Postgres 10.3
操作系统:centOS 7
最近在研究 Postgres 的vops。在使用 vops 的 populate 函数 从 原始数据类型表 向 vops 数据类型表 转换数据时出现以下ERROR:
select populate(destination:='vops_table'::regclass, source:='std_table'::regclass)
ERROR: row is too big: size 16392, maximum size 8160
我的 原始表 std_table 数据类型 为 int2 int4 int8 float4.字段个数为 64 个。总行数 27855。
执行 SELECT pg_column_size(t.*) FROM std_table AS t; 时结果为 最小的 122. 最大的 240. 平均 157.52.
请问 如何解决这个问题啊。
PS:① 我在网上查资料,说 Postgres 数据块大小为 8K 。是不是和这个有关。有关系的话怎么把数据块改大一些?
② 上面提到的数据库的 块 和 操作系统的 页 是一回事吗?我尝试 设置 centOS 7 的hugePage 和 设置 Postgre 的postgresql.conf 文件 参数 huge_pages = on 。
重启完毕后 执行 populate 函数 还是出现那个错误。
建议使用TOTAST 表。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。