我不是開發人員,但我花了數年測試和管理軟件項目。由領導和尾隨白色空間引起的錯誤就像戰爭傷口,永遠不會完全治癒。好處是不能修剪數據庫應用程序中的前導和尾隨空白字符串
所以我問,在什麼情況下領先和尾隨的白色空間有利?
我不是開發人員,但我花了數年測試和管理軟件項目。由領導和尾隨白色空間引起的錯誤就像戰爭傷口,永遠不會完全治癒。好處是不能修剪數據庫應用程序中的前導和尾隨空白字符串
所以我問,在什麼情況下領先和尾隨的白色空間有利?
速度。使用CHAR數據類型(保留尾隨空格)通常會比VARCHARS更快。話雖如此,當我遇到一個使用CHAR類型的數據庫時,我會用斧頭尋找它的設計者 - 速度差別幾乎永遠不會補償使用CHAR類型的難度。
Markdown在一行的末尾使用兩個空格作爲標記,表示該換行符應該變成<br>
。 :-P
嚴重的是,除了這樣的角落案例,我真的沒有看到保留前後空格的問題。因人而異。 :-)
我認爲一個更好的問題是爲什麼在數據庫級別強制執行此約束或創建自定義數據類型不是標準做法。
可能是因爲它的前期更多的開發工作,這是一件容易的事情跳過。
好處不修剪的 開頭和結尾空格的字符串在 數據庫應用
NONE。
所有的數據應該在數據庫中一致地格式化。這可以防止每個查詢必須針對所有可能的異常進行編碼
當以固定長度的字符串數據類型(如CHAR)存儲時,所有數據的存儲都是一致的(固定長度),因此這不是一個例外,並符合我的上述規則。要擴大Neil Butterworth answer CHAR有時更快。它取決於長度,CHAR(5)可能有優勢,因爲DB預測每頁行數並找到頁面中的行更容易。然而,與varchar(2000)相比,CHAR(2000)非常糟糕,每頁的行數會減少很多。