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
都够用了。
请注意,使用长 URL
s,您将无法创建涵盖整个 URL
的索引。如果需要UNIQUE
索引,则应计算URL
哈希,单独存储哈希并索引哈希。
【讨论】:
“它”是什么意思?TEXT
是标准且受支持的功能,MD5
哈希也是(并且MySQL
包含计算哈希的函数)。
我也是这样做的。此外,值得考虑对各种哈希函数进行基准测试,我选择了 MD5,因为它比其他所有函数都快一点,但 MD4。
PHP 中好像没有MD4
。
@Nikola: MySQL
缺乏 MD4
支持,但如果支持,它肯定是首选的哈希函数。
@Quassnoi,是的,你是对的,但我没有在 MySQL 中散列(它显示较慢),YMMV。 @eugene y,哈希是表中的列之一。以上是关于mysql中text是啥类型?跟varchar啥区别?为啥这个数据库中text类型后面的长度是0?的主要内容,如果未能解决你的问题,请参考以下文章
MySQL TEXT 的 java.sql.Types 等效项是啥?