我在MySQL中有一个消息表,用于在用户之间记录消息.除了典型的id和消息类型(所有整数类型),我需要将实际的消息文本保存为VARCHAR或TEXT.我设置的前端限制为3000个字符,这意味着消息永远不会插入到数据库中,因为它比这更长.
是否有理由使用VARCHAR(3000)或TEXT?有一些关于编写VARCHAR(3000)的东西,感觉有点违反直觉.我已经浏览了Stack Overflow上的其他类似帖子,但是能够获得特定于此类公共消息存储的视图.
当我们在mysql中创建一个包含VARCHAR列的表时,我们必须为它设置长度.但对于TEXT类型我们不必提供长度.
VARCHAR和之间有什么区别TEXT?
有时我可以使用强制索引选项在查询上使用特定索引来加快查询速度.
然后经过一段时间后,该表中的数据可能会发生变化.我使用的力索引可能不是该查询的正确索引搜索.
我的问题是
无论如何,建议查询优化器在其计划生成期间使用强制索引作为可能的选项.如果使用强制索引是一个缓慢的计划,那么它可以使用正常的查询计划.
或者否则无论如何都要编辑MySql/PSQL代码以建议Optimiser在其计划生成期间使用强制索引作为可能的选项.
附加信息:我想将我的计划添加到优化器计划列表中(Optimiser已经为查询创建了许多计划).因此,在为查询选择最佳计划时,我希望优化人员也考虑我的计划.如果这种方式可行,那么优化器不需要每次都考虑强制索引.它可以将力指数作为计划生成的可能选项
据我所知,我试图明确提出这个问题.如果有人无法理解您的查询评论.
在MySQL中使用text类型而不是大型时,是否存在任何比较,个人经验或指南varchar?
虽然我的数据库中的大多数条目将少于1000个字符,但有些可能最多需要4000个字符或更多.什么是限制长度varchar,这使得text一个更好的方法?
我不需要索引这些字段.
当文本和二进制大对象数据类型列在InnoDB引擎使用。该字段中存储的值存储在页面外而不存储在页面中(Innodb页面的默认大小为16kb)。
我的问题是1.离页是什么意思?2.从页外获取值时如何访问它?
MySQL 5.5中InnoDB存储引擎中text和varchar之间的主要区别是什么?
如果我们讨论的变量文本字段不超过5000个字符,是否使用text或varchar(5000)?