mysql中text是啥类型?跟varchar啥区别?为啥这个数据库中text类型后面的长度是0?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql中text是啥类型?跟varchar啥区别?为啥这个数据库中text类型后面的长度是0?相关的知识,希望对你有一定的参考价值。

1、char: 是定长格式的,但是长度范围是0~255. 当要储存一个长度不足255的字符时,mysql会用空格来填充剩下的字符。因此在读取数据时,char类型的数据要进行处理,把后面的空格去除
2、varchar: varchar类型在5.0.3以下的版本中的最大长度限制为255,而在5.0.3及以上的版本中
参考技术A text 长字符型,可以写一段文字。
varchar 是可变字符串,可以节省空间,但是降低了效率。
这个长度是自己设定的啊,设定为0不合理吧。

在 MySQL 中保存 url 的正确列类型是啥?

【中文标题】在 MySQL 中保存 url 的正确列类型是啥?【英文标题】:What's the proper column type to save urls in MySQL?在 MySQL 中保存 url 的正确列类型是什么? 【发布时间】:2011-01-12 14:27:10 【问题描述】:

我一直在使用varchar(300),但我也注意到更长的网址。

【问题讨论】:

【参考方案1】:

截至目前:

TEXT

>= MySQL 5.0.3 使用 VARCHAR(2083)

check this answer

【讨论】:

【参考方案2】:

从技术上讲,HTTP 对 URL 的最大长度没有限制。阅读this SO 帖子。

所以varchar 不会有帮助,你必须使用TEXT

【讨论】:

您引用的帖子指出 url 的最大长度为 2048。您如何陈述“技术上 HTTP 不会限制 URL 的最大长度”?【参考方案3】:

如您所见here,浏览器可以处理不同的 URL 长度(并且非常长)。所以你应该考虑使用text作为数据类型。

【讨论】:

【参考方案4】:

使用TEXT,每个URL都够用了。

请注意,使用长 URLs,您将无法创建涵盖整个 URL 的索引。如果需要UNIQUE 索引,则应计算URL 哈希,单独存储哈希并索引哈希。

【讨论】:

“它”是什么意思? TEXT 是标准且受支持的功能,MD5 哈希也是(并且MySQL 包含计算哈希的函数)。 我也是这样做的。此外,值得考虑对各种哈希函数进行基准测试,我选择了 MD5,因为它比其他所有函数都快一点,但 MD4。 PHP 中好像没有MD4 @Nikola: MySQL 缺乏 MD4 支持,但如果支持,它肯定是首选的哈希函数。 @Quassnoi,是的,你是对的,但我没有在 MySQL 中散列(它显示较慢),YMMV。 @eugene y,哈希是表中的列之一。

以上是关于mysql中text是啥类型?跟varchar啥区别?为啥这个数据库中text类型后面的长度是0?的主要内容,如果未能解决你的问题,请参考以下文章

textarea 的字段类型是啥?

mediumint 在mysql 中是啥类型

MySQL TEXT 的 java.sql.Types 等效项是啥?

mysql中char,varchar与text类型的区别

mysql中char,varchar与text类型的区别和选用

MySQL字段类型都是啥意思?