Mit*_*hir 7 database-design sql-server
我们需要添加一个新的独特属性,它仅与特定子集(小于 1%)相关。我们认为最好添加一个 1-1 的新表,而不是添加一个 99% 的时间为 Null 的新列。
新表是首选方式吗?
如果以下条件之一为真,则是,继续创建一个单独的表。
如果这些都不是真的,那么你可以使用一SPARSE
列。
ALTER TABLE tablename ADD mysparsecolumn INT SPARSE NULL
Run Code Online (Sandbox Code Playgroud)
这是SPARSE列上的 BOL 。你也可能想看看COLUMN SETS。稀疏列是针对 NULL 值优化的列,根据 BOL,当值为 NULL 时不占用空间。BOL 中有一些表格可以让您了解使用SPARSE
列所产生的实际节省。
如果你想使用一个单独的表,你当然可以。不利的一面是,根据主键的大小,您将失去一些空间(您需要在新表中与额外列一起包含的最小值),并且由于额外的列而导致速度变慢是诽谤加入。