innodb_ft_min_token_size = 1性能影响

问题描述 投票:0回答:1

如果我将innodb_ft_min_token_size = 1从默认值3更改,这会导致更多的磁盘使用吗?搜索是否有性能问题?

我希望能够使用1个字符的单词进行全文搜索。

此外,一旦做出更改,我将如何重建索引?这会给服务器带来很多负担吗?

mysql full-text-search
1个回答
0
投票

没有那么多的1和2个字母的单词,因此空格的变化可能不会太大。

[在my.cnf中修改innodb_ft_min_token_size,innodb_ft_max_token_size或ngram_token_size要求重新启动服务器。

要为InnoDB表重建FULLTEXT索引,请使用带有DROP INDEX和ADD INDEX选项的ALTER TABLE来删除并重新创建每个索引。

-https://dev.mysql.com/doc/refman/8.0/en/fulltext-fine-tuning.html

innodb_ft_min_token_size的“范围”是“全局”。也就是说,它适用于所有InnoDB FT索引。

-https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_ft_min_token_size

重新创建索引将读取整个表并重建FT索引,这将在某个级别将表“锁定”一段时间。重建时间将与表的大小大致成比例。在完成之前,它将消耗大量额外的磁盘空间。 (将复制表和所有索引,并至少重建FT索引。)

如果您有一千行,没什么大不了的。如果您有十亿行,那么您将需要很长的“停机时间”。

更改了innodb_ft_max_token_size后,我会害怕进行简短的通配符测试,例如

AGAINST('a*' IN BOOLEAN MODE)

如果您有测试服务器,只需尝试一下。

[我注意到文档建议中文为1等。

© www.soinside.com 2019 - 2024. All rights reserved.