何时在mysql中使用TEXT而不是VARCHAR

enc*_*nce 46 mysql

可能重复:
MySQL:大型VARCHAR与TEXT?

既然VARCHAR现在可以有65k字节,那么何时应该TEXTVARCHAR呢?

Lio*_*ion 62

long VARCHAR以与TEXT/ BLOBfield 相同的方式存储InnoDB.

从存储预期BLOB,TEXT以及长VARCHAR由Innodb以相同的方式处理.这就是为什么Innodb手动将其称为"长列"而不是BLOB.

资源

除非你需要索引这些列(在这种情况下VARCHAR要快得多),没有理由使用VARCHARTEXT的长字段-有一些发动机比的优化MySQL调整数据检索根据长度,你应该使用正确的列类型利用这些.

如果您正在使用MyISAM有关该主题的深入讨论,请点击此处.


TEXT并且BLOB存储在表格之外,表格只有一个指向实际存储位置的指针.

VARCHAR与表格内联存储.VARCHAR当尺寸合理时,速度会更快.

根据这个测试,VARCHAR大约和文本一样快三倍.

  • 定义"长场". (10认同)
  • @PaulBrewczynski> 768字节(参见链接Lion发布) (3认同)