问题描述
我将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值,它都会这样做。