MySQL文本列的索引长度是多少?

Eth*_*han 12 mysql

TEXT在MySQL数据库中有一个列.该应用程序就像一个博客,col包含"帖子"的主体.我将在此列上进行大量复杂的布尔搜索.

MySQL文档说你需要为InnoDB表设置最大长度为767字节的TEXT列的索引长度.

我应该把它设置为最大长度吗?让它低于那个更好吗?

Mar*_*rkR 18

这取决于你将拥有什么.

我怀疑你的问题是你在想象列上的索引可以执行它不能做的事情.常规索引不是全文索引,不能用于查找单词或除前缀之外的任何子字符串匹配.数据库索引仅用于查找精确值或一系列值 - 它们不能执行任意匹配.

假设你要使用索引来做它可以做的事情,那么长度应该是最短的长度,让你有足够的特异性,你可以找到你想要的行而不会读取太多的行.这需要多长时间取决于表的内容,例如,如果您的表有许多具有相同前缀的行,则索引需要比相似的前缀长,以避免将它们放入相同的索引条目 - 这意味着它们都需要被搜查.


cha*_*aos 5

如果您正在进行"复杂的布尔搜索",那么无论如何,普通索引都不会对您有任何用处.我想你可能会发现你需要一个全文索引.