当我们在mysql中创建一个包含VARCHAR列的表时,我们必须为它设置长度.但对于TEXT类型我们不必提供长度.
VARCHAR和之间有什么区别TEXT?
可能重复:
MySQL:大型VARCHAR与TEXT?
既然VARCHAR现在可以有65k字节,那么何时应该TEXT用VARCHAR呢?
我有两个字段:一个用于存储excerpt最大为500个字符的字段,另一个用于存储description最大为10,000个字符的字段.
我应该使用哪些数据类型,TEXT或者VARCHAR?为什么?
在MySQL 5.0.3 VARCHAR之后接受~65000个字符.但这并没有说明为什么我应该使用一种类型或另一种类型.
我的推理,我应该使用VARCHAR的摘录,因为我可以指定一个大小的限制,并TEXT为description外地,因为它的大.
我正在尝试使用Laravel 4将用户IP地址保存到我的数据库.我发现以下函数返回一个字符串
Request::getClientIp()
Run Code Online (Sandbox Code Playgroud)
我如何将它存储在我的模型中?只是一个字符串或有更有效的方式?
$table->string('ip_address');
Run Code Online (Sandbox Code Playgroud) mysql> desc temp1;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| value | varchar(255) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
mysql> desc temp2;
+-------+------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------+------+-----+---------+-------+
| value | text | YES | | NULL | |
+-------+------+------+-----+---------+-------+
Run Code Online (Sandbox Code Playgroud)
255-每行中有一个“ a”字符(在两个表中)
mysql> select * from temp1 limit 1;
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| value |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
mysql> select …Run Code Online (Sandbox Code Playgroud) 我刚刚在文档中注意到,在MySQL大于5.0.3的版本中,你可以使用大于255的值来声明varchar.过去我已经将数据类型切换为大于255的任何值,但我想知道现在是否更好的练习使用varchar(1000)或任何适当的长度定义更大的字符串值.
这现在也与其他数据库一样常见,或者最好坚持使用255作为最大值并更改数据类型?
我有一张表,里面有大约 200 万条记录。我有一个名为 message 的字段,它设置为 varchar(160) 并且我需要比 varchar(255) 更大的字段,因为我需要能够在其中存储大约 500 个字符,在不增加大小的情况下使用的下一个最佳数据类型是什么数据库的急剧变化?
谢谢
我有一个表单,客户将在各种textarea中键入几个段落.我应该为字段类型选择varchar还是text?有关系吗?
谢谢.
埃里克
我有一个字段"descr"varchar(15000),它会定期保存每行1000到5000个字符的文本,在每个查询中都会返回,并且会经常用LIKE%search%搜索(数据库是mysql 5.5和全文索引)不可用).输入的文本是研究数据,因此不是必需的 - 但是可搜索的是.
该表是innodb,采用utf-8编码.行数不大(30,000).varchar上的最大索引大小为(255),但是当我对列进行搜索时,它会正确返回一个输入3000个字符的行.
我已经阅读了很多关于索引的内容,最相关的是MySQL:Large VARCHAR vs. TEXT?:
我需要帮助理解:
1. What is the performance impact on retrieval (with 30,000 rows)
going to a text field and
2. Is a varchar index workable for
searching through 3000-5000 character fields? How is the search able
to find strings with data longer than the 255 varchar index anyway?
Or would you advise going with mediumtext?
Run Code Online (Sandbox Code Playgroud)
感谢您的输入.
我正在创建一个将保存长文本的项目。可能是段落...现在我的数据表字段应该使用什么数据类型?我正在使用 mySQL 工作台...谢谢
MySQL 5.5中InnoDB存储引擎中text和varchar之间的主要区别是什么?
如果我们讨论的变量文本字段不超过5000个字符,是否使用text或varchar(5000)?
所有,
我正在编写一个可以接收用户生成的文本内容的Web应用程序.其中一些输入将是几个单词,有些将是几句长.在超过90%的情况下,输入将少于800个字符. 输入需要是可搜索的. 输入将包含各种字符集,包括亚洲字符集.站点和数据库基于utf8.
我大致了解VARCHAR和TEXT之间的权衡.我想象的是同时拥有一个VARCHAR和一个TEXT表,并根据它们的大小在一个或另一个上存储输入(这应该由PHP脚本来实现).
您如何看待基于其大小的数据表?另外,为各种大小范围创建几个VARCHAR表是否有意义?我的猜测是,我将获得围绕几个密钥大小聚集的大量用户输入.
谢谢,
JDelage