在T_Product表中有一个助记码字段,他存储的是产品名称的拼音首字母,例如:
"笔记本电脑14.1寸超薄",对应的助记码为"BJBDN14.1CCB"。
这个表目前大概有5000条数据,后面大概需要增加到10w,现在根据助记码的模糊查询特别慢,查询语句如下:
select top 10 * from t_product
where zhujima '%BJ%'
这种该如何处理,是修改查询语句呢还是修改查询方案,我的一个想法是把这个表的数据放在内存中,在内存中查询,但是数据量大了之后也不是很现实,而且这个表还要关联其他表的数据
这种模糊,数据多了,严重影响性能,如果数据多,最好用搜索引擎,国产的有xunsearch,操作简单,还有solr,eleasticsearch等,都能满足搜索的需求
solr,eleasticsearch这些都是需要分词的吧,我的这种基本没有分词的概念,都是一些字母组成的一个字符串
你那个'%BJ%'能改为'BJ%'么?
你们搜索不用solr之类吗,现在那些云服务不直接都有这种服务吗
阿里云的搜索服务最方便.
或者用全文索引也是可以的