6

我应该最好使用哪种数据类型在 sql server 中存储标志字段,位(如果我只有 0,1 和 null),tinyint,smallint 或 int 用于无法容纳到位中的标志?它会影响我的查询性能吗?

4

3 回答 3

3

使用位数据类型,如果 true 或 0 ir False,则设置为 1,查询位值要小得多且更快 如果表中有 8 个或更少的位列,我认为如果你有更多然后 8 然后 SQL Server 使用 2 Bytes Column ,这比您可能拥有的任何其他选项小很多,tinyint、smallint 和 int 都需要比位列更多的空间,查询更大的数据类型意味着查询数据的时间更多。
我的建议
我的建议是使用位列,因为它需要更少的空间来存储它并且查询可以执行得更快。

于 2013-11-13T12:11:52.760 回答
1
bit

它是一个布尔值,所以它只有 1 或 0,并且不需要存储整个字节。另外,您可以在表格设计中使其为空。

于 2013-11-13T12:05:16.470 回答
1

我得到了我正在寻找的答案,我们应该考虑使用足以存储所需标志值的最小数据类型。这是关于数据库的性能,因为现在存储大小不是一个大问题。

查看此链接以获取更多见解。

根据此链接考虑如何使用磁盘空间以外的资源,考虑缓冲池和存储带宽。在极端情况下,CPU 缓存和内存总线带宽,以及 SQL Server 的工作原理。

于 2015-03-24T16:43:55.877 回答