SQL:Bit或char更好(1)

ren*_*rof 11 sql sql-server performance sql-server-2008

检索位或char(1)有什么性能差异吗?

只是为了好奇=]

更新:我正在使用SQL Server 2008!

mar*_*c_s 18

对于SQL Server:BIT单个字节中最多可以存储8列类型,而每个类型的列CHAR(1)将占用一个字节.

另一方面:BIT列可以有两个值(0 = false,1 = true)或根本没有值(NULL) - 而a CHAR(1)可以有任何字符值(更多可能性)

所以真的,它归结为:

  • 你真的需要一个真/假(是/否)字段吗?如果是这样:使用BIT
  • 你需要的东西不仅仅是两个可能的价值 - 使用 CHAR(1)

从性能的角度来看,我认为它没有任何显着差异 - 除非你有成千上万的专栏.当然,使用BIT哪个可以在单个字节中存储多达8列将是有益的.但是,对于你的"普通"数据库案例,你有几个,十几个这样的列,它确实没有太大的区别.选择适合您需求的色谱柱类型- 不要过分担心性能......

  • @Renanlf:前两句话回答了. (2认同)