何时在mysql中使用TEXT而不是VARCHAR
可能重复:
MySQL:大VARCHAR与TEXT?
既然VARCHAR现在可以有65k字节,那么应该用TEXT来代替VARCHAR吗? 
 一个长的VARCHAR以与InnoDB的TEXT / BLOB字段相同的方式存储。 
从存储预期的BLOB,TEXT以及长VARCHAR都是由Innodb处理相同的方式。 这就是为什么Innodb手册将其称为“长列”而不是BLOB。
资源
 除非需要索引这些列(在这种情况下, VARCHAR要快得多),否则没有理由在长字段上使用VARCHAR over TEXT – 在MySQL有一些引擎特定的优化来根据长度调整数据检索,应该使用正确的列types,以利用这些。 
 如果您使用的是MyISAM ,请在此处深入讨论此主题。 
  TEXT和BLOB存储在表格外,表格只有一个指向实际存储位置的指针。 
  VARCHAR与表内容保存在一起。 如果大小合理, VARCHAR会更快。 
 根据这个testing , VARCHAR大约是文本的三倍。 
文本应该用于确定长度的不确定长度的string。 另外,返回TEXT字段的查询往往比它们的VARCHAR对应的要慢得多。