您知道在PostgreSQL中可以查询的最大列数吗?在开始我的项目之前,我需要了解这个问题。
您知道在PostgreSQL中可以查询的最大列数吗?在开始我的项目之前,我需要了解这个问题。
(严格来说,这是指可以存储在磁盘行中的列;查询可能能够使用比此更宽的列集。我不建议依赖它。)
如果您即将接近列限制,您可能会遇到问题。
将电子表格映射到关系数据库似乎是世界上最简单的事情-将列映射到列,将行映射到行,然后进行操作。对吗?实际上,电子表格是巨大的自由格式文件,不强制执行任何结构,可能非常难以处理。关系数据库被设计用于处理大量的行,但代价是,对于PostgreSQL,其中一部分代价是它喜欢那些行的宽度有限制。面对由Joe User创建的电子表格时,这可能是一个真正的问题。
一种“解决方案”是将它们分解成EAV,但这非常慢且难以处理。更好的解决方案是在可能的情况下使用数组,复合类型,hstore
,json,xml等。
但最终,有时最好的答案是使用电子表格分析电子表格。
对于其他可能会发现此信息有用的人来说,根据这篇文章的说法,取决于列的类型,答案是1663。 http://archives.postgresql.org/pgsql-admin/2008-05/msg00208.php
create table wide_table(
id serial not null primary key
,rownum integer not null
,colnum integer not null
,colname varchar(30) not null
,coltype varchar(30) not null
,nullable boolean not null
,collen integer
,colprec integer
,colscale integer
,colvalue raw(2000)
,unique (rownum,colnum)
);
这将允许实际上无限数量的列,但使用它会更加不容易。