Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于MySQL中类型的问题_Mysql - Fatal编程技术网

关于MySQL中类型的问题

关于MySQL中类型的问题,mysql,Mysql,所以我创建了一个评论表,我想知道。什么样的评论类型比较好?我写了一篇长文。那么,如果longtext可以处理,为什么人们需要varchar呢?另外,我想要哪种类型的用户名 索引的“主要”目的是什么?索引的目的是什么 更新: 假设评论实际上是一个评论。这取决于系统中的“评论”是什么。通常,VARCHAR对于注释和用户名来说都是相当标准的。这将您限制在大约255个字符,这通常是可以接受的。如果你的评论中需要更多的字符,你可以把它增加到一个文本中,这样你就有65k字符多一点了 有关详细信息,请参阅。文

所以我创建了一个评论表,我想知道。什么样的评论类型比较好?我写了一篇长文。那么,如果longtext可以处理,为什么人们需要varchar呢?另外,我想要哪种类型的用户名

索引的“主要”目的是什么?索引的目的是什么

更新: 假设评论实际上是一个评论。

这取决于系统中的“评论”是什么。通常,VARCHAR对于注释和用户名来说都是相当标准的。这将您限制在大约255个字符,这通常是可以接受的。如果你的评论中需要更多的字符,你可以把它增加到一个文本中,这样你就有65k字符多一点了


有关详细信息,请参阅。

文本非空。这提供了足够的空间,有2字节的开销,通常不会出现任何问题

关于文本

在比较中,文本是空间扩展的 精确地拟合比较对象 比如CHAR和VARCHAR

对于BLOB和文本列上的索引, 必须指定索引前缀 长度。对于CHAR和VARCHAR,前缀 长度是可选的。见第7.4.2节, “列索引”

BLOB和TEXT列不能具有 默认值

如果将二进制属性与 文本数据类型,则指定该列 列的二进制排序规则 字符集

关于VARCHAR:

VARCHAR列中的值是 可变长度字符串。长度 可以指定为0到之间的值 MySQL 5.0.3之前为255,0到 5.0.3及更高版本中的65535。 一条直线的有效最大长度 MySQL 5.0.3及更高版本中的VARCHAR是 以最大行大小为准 (65535字节,在 所有列)和字符集 用过


更多信息请访问:

文本确实可以处理您在VARCHAR或CHAR字段中输入的任何内容。事实上,文本可以处理您可能希望以十进制、整数或几乎任何其他类型输入的数据。按照这个逻辑,我们不妨将每一列都设置为文本类型

但这将是一个错误。为什么?因为为预期输入使用适当的列类型可以使数据库更好地优化查询,使用更少的磁盘空间,并使数据模型更易于理解和维护

关于问题:用户名列应该使用VARCHAR(20),因为您希望并且期望大多数用户名都会变短,通常长度不超过10-20个字符。对于评论栏(如电影评论或书评),文本类型是合适的,因为评论可以跨越一段到几页

关于索引,请尝试以下链接:


看看这个,它列出了所有MySQL字段类型,并描述了它们是什么以及它们之间的区别。

我如何知道哪种类型允许哪些字符?那么,当longtext与它的函数重叠时,为什么需要varchar呢?我相信世界上有很多东西都是这样运作的,但我只是想进一步挖掘,看看我遗漏了什么特殊原因。使用长文本作为评论或用户名就像是把火箭筒带到水枪大战中一样。