我得到了一个大的(> 100M行)Postgres表,其结构为{integer,integer,integer,timestamp without time zone}.我期望一行的大小为3*整数+ 1*时间戳= 3*4 + 1*8 = 20字节.
实际上,行大小pg_relation_size(tbl) / count(*)= 52字节.为什么?
(不对表进行删除:pg_relation_size(tbl, 'fsm')〜= 0)
我在那有确定某些国家(例如,几个布尔列的PostgreSQL数据库的表的工作published,visible等等).我想创建一个单独的状态列,它将以位掩码的形式存储所有这些值以及可能的新值.在这种情况下integer和之间有什么区别bit(n)吗?
这将是一个相当大的表,因为它存储用户通过Web界面创建的对象.所以我想我必须为这个列使用(部分)索引.
给定一个大表(1000万到1亿行),添加一些额外(未编入索引)的列的最佳方法是什么?
答案的变化取决于额外的列是密集的(大多数不是空的)还是稀疏的(大多数是空的)?
postgresql ×3
bitmask ×1
database ×1
performance ×1
sql ×1
sqldatatypes ×1
storage ×1
types ×1