首页 > 解决方案 > 提高文本列的搜索速度

问题描述

我有一个名为“产品”的表,其中有近 100,000 条记录。我在表中有一个名为“产品名称”的字段,它是一个 varchar(255) 字段,包含可能是 5 - 15 个字左右的文本的产品名称。我使用用户输入的关键字在此表上执行搜索操作...我喜欢...

 select * from products where product_name like '%USER_KEY%' limit 5;

当用户搜索单个词(例如 iphone)时,它看起来像这样......

 select * from products where product_name like '%iphone%' limit 5;

此查询大约在 0.89 秒内运行,这很好。

当用户搜索多个术语(例如 iphone 5gb)时,它看起来像这样......

 select * from products where product_name like '%iphone%5gb%' limit 5;

此查询大约需要 4.02 秒。产品名称是已索引的唯一键。有人可以帮我做些什么来让这个搜索缩短时间吗?

有什么可以用 db 做的吗?或者 mysql 中的任何设置更改有助于提高查询速度?

标签: mysqlsql

解决方案


推荐阅读