When to use TEXT in mysql instead of VARCHAR
Possible Duplicate:
MySQL: Large VARCHAR vs. TEXT?
既然VARCHAR现在可以有65K字节,那么什么时候应该使用TEXT而不是VARCHAR呢?
- 当您需要超过65K个字符时。:)
- 我想应该是65K字节,不是字符
- 哦,是的。6K字节。更新了我的问题。
长的VARCHAR以与InnoDB中的TEXT/BLOB字段相同的方式存储。
From storage prospective BLOB, TEXT as
well as long VARCHAR are handled same
way by Innodb. This is why Innodb
manual calls it"long columns" rather
than BLOBs.
来源
除非需要索引这些列(在这种情况下,VARCHAR快得多),否则没有理由对长字段使用VARCHAR而不是TEXT—MySQL中有一些特定于引擎的优化,可以根据长度调整数据检索,并且应该使用正确的列类型来利用这些优化。
如果您使用的是MyISAM,这里将对这个主题进行深入的讨论。
TEXT和BLOB在表外存储,表中只有一个指向实际存储位置的指针。
VARCHAR与表内联存储。尺寸合理时,VARCHAR速度更快。
根据这个测试,VARCHAR的速度大约是文本速度的三倍。
- 定义"龙场"。
- "paulbrewczynski > 768字节(见《狮子发布链接)
- 一个校正:text和BLOB InnoDB表仓库是关闭的,如果只会"长"(> 768字节),只在尾锥关闭表(可存储两个varchar相似)。不同的是皇家的最高lengths和不同,你必须用varchar(max length(供电系统enforces沿与限制(65K)。
- 啊,应该已经知道affects性能数据类型
- 更新:由于这是写答案,请ROW_FORMATs已经创造了在InnoDB,和767限制生长有两个关于3K。底线:过去的一VARCHAR几KB,和TEXT是identically手腕。
文本应该用于长度不确定的非常长的字符串。此外,返回文本字段的查询往往比它们的varchar对应查询慢得多。
- 在我的数据库中有一个名叫描述柱。应该是一个"varchar数据类型或文本?我不确定多久的描述数据将是冰淇淋,但我计划把a word count的限制,所以在前端,它将产生最大长度。