代码之家  ›  专栏  ›  技术社区  ›  vicatcu

数据库(mysql)数据类型选择:文本与二进制

  •  1
  • vicatcu  · 技术社区  · 14 年前

    与BLOB或二进制数据类型相比,在选择文本数据类型时有哪些权衡?我不打算在列上建立索引或在WHERE子句中使用它,它只是数据库中的数据,恰好是文本。如果我选择的数据类型有性能或存储方面的优势,那最好知道。。。谢谢!

    1 回复  |  直到 14 年前
        1
  •  5
  •   Faisal    14 年前

    简而言之:如果是文本,请使用文本数据类型。

    长答案:文本列被视为文本,即它们具有指定的字符集。如果在文本值之间进行比较,它将使用字符集的排序规则,而不仅仅是比较它们的数值。另一方面,BLOB列只是字节数组;它们没有定义的字符集。如果您存储的是unicode(或其他“宽字符”编码),那么您肯定希望使用文本,因为除非您这样做,否则您的数据对db基本上是不透明的。

    它们都可以存储相同数量的数据(当然,这取决于您正在使用的子类型),但是您可能会看到将BLOB用于二进制数据的性能提升很小,因为不会进行任何与文本相关的处理。