gpt4 book ai didi

MySQL:(全文/索引)搜索 "one-word-columns"

转载 作者:可可西里 更新时间:2023-11-01 06:49:07 25 4
gpt4 key购买 nike

我有一个表(MySQL 5.1,InnoDB),大约有 300 万行,其中 98% 仅由一个单词组成。如果我使用 LIKE %searchterm% 运行查询,它会太慢。

因为只有这个表有SELECT查询,所以我想把它转换成MyISAM(因为InnoDB还没有,或者只有5.6+版本,支持FULLTEXT).

但是,我想知道这是否真的会加快查询速度,据我所知,全文索引是一个包含拆分词的表(“Hello sunny day” -> “hello”,“sunny ", "day"),所以如果每列只有一个词,它有意义吗?

如果我在此文本列上放置一个普通索引,是否会加快查询速度?

预先感谢您的帮助!

最佳答案

使用 FULLTEXT 索引会有所帮助。它将文本拆分为单词,但随后它也会对这些单词进行索引。正是这种索引加快了查询速度。但是你需要使用 full-text search functions ,而不是 LIKE,以利用索引。

普通索引对您没有帮助。 LIKE 子句只有在具有常量前缀时才能利用索引。

  • yourcolumn LIKE 'searchterm%' 将使用索引。
  • yourcolumn LIKE '%searchterm%' 不会使用索引。

关于MySQL:(全文/索引)搜索 "one-word-columns",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10368536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com