PostgreSQL选择查询中的最大列数是多少

Luk*_*101 36 sql postgresql postgresql-9.2

你知道在Postgresql中可以查询的最大列数是多少吗?在开始我的项目之前,我需要知道这一点.

Cra*_*ger 43

根据关于PostgreSQL,它是"250 - 1600,取决于列类型".请参阅"限制".列类型会影响它,因为在PostgreSQL中,行最多可以是8kb(一页)宽,它们不能跨页面.列中的大值是可以的,因为TOAST会处理这些值,但是您可以适应的列数有限,这取决于所使用的未转换数据类型的宽度.

(严格地说,这是指可以存储在磁盘上的行;查询可能使用比此更宽的列集.我不建议依赖它.)

如果您甚至考虑接近列限制,那么您可能会遇到问题.

将电子表格映射到关系数据库似乎是世界上最简单的事情 - 将列映射到列,将行映射到行和go.对?实际上,电子表格是巨大的自由形态怪物,它们不执行任何结构,并且可能非常不适合.关系数据库设计用于处理大量的多行,但有代价的; 在PostgreSQL的情况下,该成本的一部分是对它们喜欢这些行的宽度的限制.当面对Joe User创建的电子表格时,这可能是一个真正的问题.

一个"解决方案"是将它们分解为EAV,但这是难以置信的缓慢和丑陋的工作.更好的解决方案是尽可能使用数组,复合类型hstore,json,xml等.

但最后,有时最好的答案是使用电子表格分析电子表格.

  • 哇..我非常熟悉sql server和我第一次使用postgresql.我不知道数据库有hstore和json.你给了我一个好主意,通过使用这些数据类型来解决另一个问题.我看到postgresql是一个强大的工具. (2认同)

Luk*_*101 8

对于可能发现此信息有用的其他人,答案是1663,具体取决于本文中的列的类型 http://archives.postgresql.org/pgsql-admin/2008-05/msg00208.php