大佬教程收集整理的这篇文章主要介绍了可空列可以在PostgreSQL中占用额外的空间吗?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如果该行中至少有一列持有一个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,请注明来意。