首页 新闻 会员 周边 捐助

模糊查询如何提高性能

0
[已解决问题] 解决于 2019-03-19 12:17

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

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

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

select top 10 * from t_product

where zhujima '%BJ%'

 

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

多啦A梦的弟弟的主页 多啦A梦的弟弟 | 初学一级 | 园豆:46
提问于:2017-05-08 18:00
< >
分享
最佳答案
0

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

奖励园豆:5
风行天下12 | 老鸟四级 |园豆:3867 | 2017-05-09 15:24

solr,eleasticsearch这些都是需要分词的吧,我的这种基本没有分词的概念,都是一些字母组成的一个字符串

多啦A梦的弟弟 | 园豆:46 (初学一级) | 2017-05-15 22:17
其他回答(3)
0

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

Daniel Cai | 园豆:10424 (专家六级) | 2017-05-08 18:12
0

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

司幸 | 园豆:319 (菜鸟二级) | 2017-05-08 18:30
0

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

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

吴瑞祥 | 园豆:29449 (高人七级) | 2017-05-08 18:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册