【问题标题】:Fulltext Indexing on MyISAM, single column vs multiple column indexingMyISAM 上的全文索引,单列与多列索引
【发布时间】:2016-05-17 23:46:41
【问题描述】:

我有一个非常大的表(4M+ 行),磁盘空间超过 40Gb(14Gb 数据和 28Gb 索引)。我需要在组合和分离的多个字段上进行全文搜索,这意味着我需要能够同时在单列和多列上进行全文搜索,如下所示:

用于组合搜索

SELECT `column_a`, `column_b` FROM `table_1` WHERE MATCH (`column_a`, `column_c`, `column_x`) AGAINST ('+$search_quesry*' IN BOOLEAN MODE);

单独搜索

SELECT `column_a`, `column_b` FROM `table_1` WHERE MATCH (`column_a`) AGAINST ('+search_query*' IN BOOLEAN MODE);
SELECT `column_a`, `column_b` FROM `table_1` WHERE MATCH (`column_c`) AGAINST ('+search_query*' IN BOOLEAN MODE);
SELECT `column_a`, `column_b` FROM `table_1` WHERE MATCH (`column_x`) AGAINST ('+search_query*' IN BOOLEAN MODE);

这是我的问题。我已经将以下两个集合定义为索引,这会导致 24Gb+ 磁盘空间。是我做对了还是一套就够了?

ALTER TABLE  `table_1` ADD FULLTEXT (`column_a`, `column_c`, `column_x`);

和/或

ALTER TABLE  `table_1` ADD FULLTEXT (`column_a`);
ALTER TABLE  `table_1` ADD FULLTEXT (`column_c`);
ALTER TABLE  `table_1` ADD FULLTEXT (`column_x`);

ALTER TABLE  `table_1` ADD FULLTEXT (`column_a`);
ALTER TABLE  `table_1` ADD FULLTEXT (`column_c`, `column_x`);

这主要是为了减少所需的磁盘空间以及更好的性能。任何更好的建议都非常受欢迎。谢谢:)

附: column_a 在索引组合和分离时的基数似乎不同。

【问题讨论】:

    标签: mysql full-text-search multiple-columns myisam full-text-indexing


    【解决方案1】:

    对于 MyISAM:

    FULLTEXT (`column_a`, `column_c`, `column_x`)
    

    对于 InnoDB:

    FULLTEXT (`column_a`, `column_c`, `column_x`),
    FULLTEXT (`column_a`),
    FULLTEXT (`column_c`),
    FULLTEXT (`column_x`)
    

    如果您有 5.6 或更高版本,则应转换为 InnoDB。

    【讨论】:

    • 因此,如果我从 MyISAM 转换为 InnoDB,在 MyISAM 中定义 4 个索引而不是 1 个索引不会占用更多磁盘空间?在 InnoDB 中定义索引的那种类型是否足以满足SELECT `column_a`, `column_b` FROM `table_1` WHERE MATCH (`column_a`, `column_c`) AGAINST ('+$search_quesry*' IN BOOLEAN MODE); 之类的需求,或者我需要定义一个新索引?这里的顺序重要吗?
    • InnoDB 的 FT 索引要小得多(原因我不明白)。
    • 建议你试验一下,比如说,10% 的数据——看看索引有多大,真正需要多少不同的索引等等。你正在进入一个我只有部分知识。
    猜你喜欢
    • 2018-07-27
    • 2020-05-06
    • 1970-01-01
    • 2011-11-07
    • 2010-09-15
    • 2014-02-12
    • 2017-01-10
    • 2011-11-29
    相关资源
    最近更新 更多