2010-07-12 65 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进行二进制数据时性能会有小幅提升,因为不会有任何与之相关的文本相关处理。