gpt4 book ai didi

mysql - 如何通过 LIKE 和部分匹配在 MySQL 中为 VARCHAR 字段使用索引?

转载 作者:行者123 更新时间:2023-11-29 00:16:53 25 4
gpt4 key购买 nike

我有一个 MySQL 表,其中有 4200 万条记录。此表中的“名称”字段上有索引(不是唯一的,也不是主键)

如果我用

SELECT x FROM table WHERE name='asdef' 

它使用索引,我很快就能得到结果。

如果我用

SELECT x FROM table WHERE name LIKE '%sd%'

即使我使用 FORCE INDEXUSE INDEX,它也不使用索引。

我绝对需要进行部分匹配。如何在保持我的字段为 VARCHAR 的同时执行此操作?

最佳答案

嗯,你有问题。而且,SQL 可能会提供一些工具,但它们可能无法解决您的问题。

首先,您的“部分”搜索是否真的是在短语中查找单词。如果是这样,您可以使用 MySQL 全文搜索来查找单词。您可能需要注意停用词列表和最小搜索长度,以使其适用于您的数据。

其次,名称是否在整个表格中重复?如果是这样,那么规范化将有所帮助。例如,如果4200万条记录中有5万个名字,那么从这5万条中搜索就更可行了。

第三,是否有一些您要查找的有限项?如果是这样,那么您可以将标志添加到通过触发器维护的表中。

第四,行有多宽,与name无关?如果行很宽,您可以通过将 name 存储在适合并保留在内存中的单独表中来提高穷举搜索的效率。

关于mysql - 如何通过 LIKE 和部分匹配在 MySQL 中为 VARCHAR 字段使用索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22664390/

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