gpt4 book ai didi

mysql - INDEX 或 FULLTEXT 在 MySql 中存储 VARCHAR(1000)

转载 作者:行者123 更新时间:2023-11-29 05:30:38 24 4
gpt4 key购买 nike

我的目的:
我需要进行 SELECT WHERE string IN ('...') 查询,而 string 是一个 VARCHAR (1000)

问题:
我不知道我应该为它使用 FULLTEXT 索引还是简单的 INDEX

问题:
搜索将完成,在查询中使用两个相似的表创建多个 UNION,这两个表都包含 string 字段,所以我不知道 FULLTEXT 是否会加快速度。
(我对 FULLTEXT 索引的想法是将它们与 MATCH AGINST 查询一起使用)

结构:
您可以在我之前在 How to structure this DATABASE idea 做的一个问题中看到我如何在不同的表中构建多个 string 字段。

注意:
这个问题是关于哪种类型的 INDEX 更适合这种情况。我只是把结构问题联系起来,让读者更多地引用我在做什么。它不是重复的。

最佳答案

1-N

如果您的单词和短语很常见并且会在许多行之间重复,您应该考虑将它们分成 1-n 关系。通过将数据与您的数据连接起来,搜索和查询数据的效率会更高。这可能不符合您的要求——这完全取决于单词和短语的类型。

全文

索引 varchar 1000 是个坏主意(我不喜欢做假设,但这通常总是不好的)。如果你的数据集增长,这不仅会使用大量的内存和索引空间,而且当它开始成为一个问题时,这将是一个很难解决的性能瓶颈。这就是原因 FULLTEXT在那里,如果您使用的是 MySQL 5.6 或更高版本,您现在可以使用 FULLTEXT在 INNODB 表上也是如此——如果您使用的是旧版本,不幸的是它只会在 MyISAM 中受支持,并且该存储引擎有缺点(有些相当大,所以请在选择它之前进行研究)。

正确搜索

最好的解决方案是使用适当的搜索引擎,例如 Lucene , SphinxXapian

关于mysql - INDEX 或 FULLTEXT 在 MySql 中存储 VARCHAR(1000),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15178496/

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