Postgre SQL   发布时间:2022-05-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了可空列可以在PostgreSQL中占用额外的空间吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个7列的表,其中5列将为空.我将在int,text,date,Boolean和money数据类型上有一个空列.此表将包含数百万行,其中包含许多空值.我担心空值将占用空间.

另外,你知道POSTGRes是否索引null值?我想阻止它索引null.

基本上,NulL值在NulL位图中占用1位.但它不是那么简单

如果该行中至少有一列持有一个NulL值,则空位图(每行)仅在此位置.这可能导致具有9个或更多列的表中的悖论效应:将第一个NulL值分配给一个列可能会占用磁盘上的空间,而不是向其写入一个值.相反,当最后一列变为非空时,该位将删除空位图.

在物理上,初始空位图在HeapTupleheader(23个字节)和实际列数据之间占据1个字节,或者行OID(如果你应该使用的话),它始终以MAXAliGN的倍数开始(在现代服务器上通常为8个字节) ).这留下了由初始空位图使用的1字节的填充.

实际上,对于8列或更少的表,NulL存储是绝对免费的.
之后,另外4/8字节(通常为8)分配给下一个32/64列.等等.

更多细节in the manual及以下相关问题:

> How much disk-space is needed to store a NULL value using POSTGResql DB?
> @L_502_2@
> How many records can I store in 5 MB of POSTGReSQL on Heroku?

一旦了解数据类型的填充,您可以进一步优化存储.更多在this related answer.但是案例是罕见的,您可以节省大量的空间.通常这是不值得的努力.

@Daniel已经涵盖了对索引大小的影响.

大佬总结

以上是大佬教程为你收集整理的可空列可以在PostgreSQL中占用额外的空间吗?全部内容,希望文章能够帮你解决可空列可以在PostgreSQL中占用额外的空间吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:datetext