【问题标题】:What a good index length for a MySQL text column?MySQL 文本列的索引长度有多好?
【发布时间】:2009-04-18 21:02:55
【问题描述】:

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

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

我应该将其设置为最大长度吗?比那个少是不是更好?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    这取决于你将拥有什么。

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

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

    【讨论】:

      【解决方案2】:

      如果您正在执行“复杂的布尔搜索”,那么普通索引很可能对您没有任何用处。我想你可能会发现你需要full-text index

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-02-15
        • 2011-07-22
        • 1970-01-01
        • 2016-06-29
        • 2020-02-20
        • 1970-01-01
        • 2011-03-04
        • 2020-07-26
        相关资源
        最近更新 更多