InnoDB MySQL 5.5中的TEXT vs VARCHAR.何时使用每一个

Emi*_*lás 3 mysql database varchar text types

MySQL 5.5中InnoDB存储引擎中text和varchar之间的主要区别是什么?

如果我们讨论的变量文本字段不超过5000个字符,是否使用text或varchar(5000)?

Bal*_*ash 14

根据论坛帖子 innodb.com

从InnoDB的角度看,varchar,text和blob以完全相同的方式布局在磁盘上.如果您对内部细节感兴趣,那么InnoDB将varchar和text值传递回MySQL的方式就有所不同.在varchar的情况下,值在行缓冲区内传回,而在文本的情况下,行缓冲区包含指向包含实际值的内存块的指针.但是,这更像是MySQL存储引擎接口的细节,应该与最终用户无关.

还检查一下.

  • 另外,根据[this](http://www.mysqlperformanceblog.com/2010/02/09/blob-storage-in-innodb/),InnoDB与其他正常文件一起存储多达7KB的text/blob/varchar硬盘上的字段,因此尽管有共同的信念,但阅读较短的文本字段并不需要读取任何"外部页面". (3认同)