gpt4 book ai didi

MySQL 使用部分字符串进行搜索

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

我们在 MySQL 上有一个 ISAM 表,其中包含有关产品的信息。该表大约有 3M 行(2GB),我们需要根据可能包含在三个不同字段(两个是索引)中的部分字符串来搜索一部分。

要搜索包含子字符串 xyzabc 以及 efg 的行,我们当前使用以下查询:

SELECT field1,field2,field3 FROM `TABLE`
WHERE CONCAT_WS(' ',field1,field2,field3,'') LIKE '%xyz%'
AND CONCAT_WS(' ',field1,field2,field3,'') LIKE '%abc%'
AND CONCAT_WS(' ',field1,field2,field3,'') LIKE '%efg%'
ORDER BY `field1`

显然,性能很糟糕(15 秒)。我们正在考虑使用全文检索索引;任何提示/意见将不胜感激。

最佳答案

定位功能很可能会更快:

SELECT field1,field2,field3 
FROM TABLE
WHERE
(
locate('xyz',field1) > 0
or locate('xyz',field2) > 0
or locate('xyz',field3) > 0
)
and
(
locate('efg',field1) > 0
or locate('efg',field2) > 0
or locate('efg',field3) > 0
)
ORDER BY field1

关于MySQL 使用部分字符串进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24396317/

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