模糊查询如何提高性能

2019-03-19 11:19发布

问题:

在T_Product表中有一个助记码字段,他存储的是产品名称的拼音首字母,例如:

"笔记本电脑14.1寸超薄",对应的助记码为"BJBDN14.1CCB"。

这个表目前大概有5000条数据,后面大概需要增加到10w,现在根据助记码的模糊查询特别慢,查询语句如下:

select top 10 * from t_product

where zhujima '%BJ%'

 

这种该如何处理,是修改查询语句呢还是修改查询方案,我的一个想法是把这个表的数据放在内存中,在内存中查询,但是数据量大了之后也不是很现实,而且这个表还要关联其他表的数据

回答1:

这种模糊,数据多了,严重影响性能,如果数据多,最好用搜索引擎,国产的有xunsearch,操作简单,还有solr,eleasticsearch等,都能满足搜索的需求



回答2:

你那个'%BJ%'能改为'BJ%'么?



回答3:

你们搜索不用solr之类吗,现在那些云服务不直接都有这种服务吗



回答4:

阿里云的搜索服务最方便.

或者用全文索引也是可以的