在数据库应用程序中不修剪前导和尾随空格字符串的好处

时间:2010-03-10 17:46:15

标签: database string

我不是开发人员,但我花了数年时间测试和管理软件项目。由字符串中的前导和尾随空格引起的错误就像战争伤口永远不会完全愈合。

所以我问,在什么情况下领先和尾随白色空间有益?

4 个答案:

答案 0 :(得分:3)

速度。使用CHAR数据类型(保留尾随空格)通常比VARCHARS更快。话虽如此,当我遇到一个使用CHAR类型的数据库时,我会用斧头寻找它的设计师 - 速度差异几乎从不补偿使用CHAR类型的难度。

答案 1 :(得分:1)

Markdown在一行末尾使用两个空格作为标记,表示该换行符应转换为<br>。 :-P

严重的是,除了这些极端情况之外,我并没有真正看到保持领先/尾随空间的重点。因人而异。 : - )

答案 2 :(得分:0)

我认为更好的问题是为什么在数据库级别强制执行此约束或创建自定义数据类型不是标准做法。

可能是因为它预先进行了更多的开发工作,而且很容易跳过。

答案 3 :(得分:0)

  

不修剪字符串的好处   中的前导和尾随空格   数据库应用程序

<强> NONE

所有数据都应在数据库中一致地格式化。这可以防止每个查询必须为所有可能的异常进行编码。

当存储固定长度的字符串数据类型(如CHAR)时,所有数据都会一致地存储(固定长度),因此这不是例外,并且符合我的上述规则。要扩展Neil Butterworth answer,CHAR有时会更快。它取决于长度,CHAR(5)可能有一个优势,因为DB更容易预测每页的行数,并在页面中找到行。然而,与varchar(2000)相比,CHAR(2000)很糟糕,每页的行数会少很多。