如果Django postgresql数据库中char字段的值为null,则表中实际上将分配多少空间?

问题描述

我将PostgreSQL与Postgresql数据库一起使用。现在,假设我有一个包含三个字段的模型(表):

class TempModel(models.Model):
    url = models.CharField(_('Url'),blank=True,null=True,max_length=100)
    file = models.FileField(_('File'),upload_to=custom_file_path,max_length=1024)
    order = models.IntegerField(_('Order'),blank=False,null=False)

现在,如果我在URL和file字段中未提供任何值,则将在这些字段中存储空值。而null占用大约1个字节的内存。但是最大内存限制分别是100个字符和1024个字符。

所以我的疑问是,如果我不提供任何输入数据,将为URL和文件字段分配多少空间?数据库中是否会浪费内存?

解决方法

NULL值不会占用数据库中的任何存储空间。

如果一个表具有可空列,则每个表行都有一个 null位图,表示哪些列为NULL。当然,该位图会占用存储空间,但是无论是否存在NULL值,它都会这样做。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...