Mar*_*aio 6 mysql null empty-string database-design
在我的 MySQL 数据库中,我有一个名为的字段html_contents
,其中包含要在网页中显示的所有 html。显然 html 可能很大,而且肯定大于 64KB,因此我决定使用LONGTEXT
而不是VARCHAR
.
当字段未设置或留空时,您是否认为将其设置为 NULL 或空字符串更好(对于数据库来说别名更有效)?
我读过这篇文章:何时使用 NULL 以及何时使用空字符串?但它一般谈论空字符串(可能是小字符串而不是LONGTEXT
)。
我想知道 with 是否LONGTEXT
是一个不同的故事,它是否可以节省大量空间或执行时间,NULL
而不是留空LONGTEXT
。
一般来说,这可能在某种程度上是特定于应用程序的。在我看来,真正的问题是空值的意义是什么? 请记住,该选择会更改处理该值的 SQL 查询的语义,因此这是重点关注的地方。
作为一般规则,我更喜欢在值可能存在但未知的情况下使用 NULL,在假设我们知道该值不适用的情况下使用空字符串。这让很多事情保持理智。例如,空值和非空值的文本串联会产生空值。如果我们想知道结果实际上是未知的(并且在某些情况下我们确实未知),这会很有帮助。无论如何,如果某个地方的值未知并且我们想使用空字符串作为占位符,我们必须明确地执行此操作。同样,如果已知该值不适用,我们可以按原样使用 concat 一个空字符串。
就空间而言,我想你会发现语义的清晰度远远超过了任何差异。在任何理智的数据库实现中,我不希望存在巨大的空间差异。
归档时间: |
|
查看次数: |
10857 次 |
最近记录: |