2010-07-12 92 views
0

與BLOB或BINARY數據類型相比,選擇TEXT數據類型時的權衡是什麼?我不打算在列上索引或在WHERE子句中使用它,它只是數據庫中的數據,恰好是文本數據。如果我對數據類型的選擇有性能或存儲優勢,那麼很好理解......謝謝!數據庫(mysql)數據類型選擇:文本vs二進制

+1

從語義上講,如果這是你永遠不會將它存儲爲文本,那麼將文本更有意義。我不確定有關mysql的問題,但是其他DBMS在嘗試存儲超過一定長度的文本時遇到問題,所以這可能是一個問題。 – 2010-07-12 17:33:24

回答

4

簡短回答:如果是文本,請使用TEXT數據類型。

長答案:TEXT列被視爲文本,即他們有一個指定的字符集。如果您在TEXT值之間進行比較,它將使用您的字符集的排序規則,而不僅僅是比較它們的數字值。另一方面,BLOB列只是字節數組;他們沒有定義的字符集。如果你存儲unicode(或其他'寬字符'編碼),你一定會想使用TEXT,因爲除非你的數據你的數據基本上是不透明的。

它們都可以存儲相同數量的數據(當然取決於您使用的是哪個子類型),但是您可能會發現在使用BLOB進行二進制數據時性能會有小幅提升,因爲不會有任何與之相關的文本相關處理。