Mat*_*les 12 sql-server-2008 xml
我负责在一个项目上创建一个数据库。我们有很少有值的字段(每 10,000 条记录中有 1 个),我正在尝试找出将其存储在数据库中的最佳方法。
据我所知,我有 3 个选择:
还有其他我没有考虑过的选择吗?
我正在尝试找出每种方法的优缺点。据我所知,1 将是最简单的,而 2 将占用最少的空间,但我正在努力为 3 找到许多资源。
如果 SQL Server 中的长度可变,则可为空的列不占用空间。NULL 的事实存储在NULL 位图中。如果需要,您可以使用过滤索引对其进行索引,这样您就可以忽略 NULL 列。
当您考虑第 1 点时会增加复杂性。
别。很难搜索、解析等:你以后会后悔的
它还取决于大小:对于几十亿行,这会是 char(1000) 吗?还是 10 万行的 tinyint?如果后者考虑增加第 2 点的复杂性:不值得。