mysql - 提高文本列的搜索速度
问题描述
我有一个名为“产品”的表,其中有近 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 中的任何设置更改有助于提高查询速度?
解决方案
推荐阅读
- google-cloud-platform - Google IOT 后端多久更新一次设备状态?
- sql-server - Nest Json 数组合并
- scala - Odersky 解释的 Scala 隐式
- java - doNothing() 和 times() 在 Mockito 中同时使用
- docker - Docker / TeamCity / xUnit - 测试选项卡缺失和失败的测试不会停止构建
- java - JavaFX 画布返回 Null
- rules - 如何确定对象是否是 IBM Rules Designer/ODM 中某个类的实例?
- php - 获取新闻提要(社交媒体)
- python - 如何在守护进程模式下使用 docker 运行 Python?
- python - keras TypeError:'int'对象不可迭代