MySQL高效实现模糊查询--28条优化建议

这是一个陷阱,不要相信,不要做。

mysql中模糊查询like和locate函数谁的效率高,为什么?

我记得有一次,我正在帮助一家电子商务网站优化其搜索功能。
他们过去常常使用模糊查询,例如 LIKE '%keyword%'。
结果每次搜索都要花费几分钟,用户体验很差。
当我查看数据库时,我发现他们使用InnoDB引擎,所以我建议他们尝试全文搜索。

我花了两天时间在数据库中创建了全文索引,并调整了参数,使搜索速度提高了好几倍。
记得测试时,搜索关键字“衣服”原本需要4 0秒,优化后只需要2 秒。
不过,我也发现了一个问题,就是有些用户输入的搜索词太短,比如“裙子”。
全文搜索时将忽略此类简短术语。

然后,我想到了另一个办法,就是在搜索过程中发现关键字太短就自动扩展搜索,比如将“skirt”扩展为“dress”。
这样,即使用户只输入“裙子”,仍然可以找到相关产品。
然而,实现这种高级搜索有点复杂,并且需要一些额外的逻辑。

等一下,我突然想到,如果用户输入的关键字包含特殊字符或符号,搜索结果可能会受到影响。
我需要仔细检查用户输入以确保搜索的准确性。