用于在MySQL数据库中存储文章的字段/数据类型

时间:2010-12-28 16:34:24

标签: mysql database-design varchar

我不禁相信这个话题一遍又一遍地写,但我找不到任何好的,可靠的信息。

我应该使用哪种数据类型来存储200到400字的文字?那些可以接近两三千个单词的文章呢?

哪些选项会影响我的决定?我不打算搜索这些数据,但我不能完全排除我以后想要这样做的可能性。

不幸的是我的背景是MS Access,其中唯一的选择是备忘录字段。使用MySQL看起来并不那么简单。

3 个答案:

答案 0 :(得分:2)

如果您使用的是MySQL 5.0.3或更高版本,请转到VARCHAR。它可以容纳65k字节。只要你每行只有1个长VARCHAR,你应该没问题。

否则请使用文字。

来自mysql手册:

  

BLOB和TEXT与VARBINARY不同   和VARCHAR有以下几种方式:

     

没有删除尾随空格   值为时的BLOB和TEXT列   存储或检索。在MySQL之前   5.0.3,这与VARBINARY和VARCHAR不同,尾随空格为   存储值时删除。

     

在比较时,TEXT是空间扩展的   完全符合比较对象   像CHAR和VARCHAR。

     

对于BLOB和TEXT列的索引,   您必须指定索引前缀   长度。对于CHAR和VARCHAR,一个前缀   长度是可选的。见7.5.1节,   “列索引”。

     

BLOB和TEXT列不能有   默认值。

也很高兴知道(来自the manual):

  

BLOB或TEXT列的实例   查询的结果是   使用临时表处理   导致服务器使用表   磁盘而不是内存因为   MEMORY存储引擎不支持   那些数据类型

在制定使用TEXT的查询时,您应该考虑到这一点。

答案 1 :(得分:0)

TEXT字段应该足以存储大多数文章。似乎与Access的备忘录类型相当。它可以容纳多达65535个字符,这可能在某处...我不知道...平均10-12,000个单词?

答案 2 :(得分:0)

对于您的情况,TEXT数据类型是一个安全的选择,VARCHAR通常在需要编制索引或存储明确定义的值时使用(IP地址,zip代码等)。