首页 新闻 搜索 专区 学院

like查询速度太慢的问题

0
悬赏园豆:80 [已解决问题] 解决于 2014-01-22 17:14

有一数据量在三十多万的产品表,其中表中有一描述字段description(varchar(8000)),现在需要对产品表的描述字段进行模糊查询,用到立刻‘%%’,但是页面查询速度特别慢,应该怎么解决?

147258的主页 147258 | 初学一级 | 园豆:130
提问于:2014-01-22 16:28
< >
分享
最佳答案
0

对于内容较多的字段用like去查询确实很吃力,匹配计算的量很大,我也推荐用SQL 全文索引

http://www.cnblogs.com/ericwen/archive/2008/09/04/1283998.html

收获园豆:40
Zery | 大侠五级 |园豆:6151 | 2014-01-22 16:37

已经添加上全文索引了,查询速度快了不少,但是出现一个问题,就是有些中文字符串可以查询,但是有的字符串查询报错,提示“全文操作运行失败。查询子句只包含被忽略的词。”。

网上说的解决办法都已经试过了,还是不行

147258 | 园豆:130 (初学一级) | 2014-01-22 18:04

@147258: 你这种情况很可能是中英文引发的,网上的解决方案是肯定有,只是你要注意细节 

Zery | 园豆:6151 (大侠五级) | 2014-01-22 19:44

@Zery: 已经解决了,现在可以进行查询,在本机测试已经没有问题,但是远程登录服务器进行添加全文索引的时候出错了,直接在数据库上新建全文索引的时候提示“找不到master.dbo.xp_fixeddrivers”,然后用SQL语句启用全文索引“exec sp_fulltext_database 'enable'”提示参数错误

这样该怎么解决

147258 | 园豆:130 (初学一级) | 2014-01-23 11:53
其他回答(2)
0

直接Like就是作死``.

最简单的办法是用MSSQL自带的全文索引

收获园豆:40
吴瑞祥 | 园豆:29369 (高人七级) | 2014-01-22 16:30
0

首先设计不合理,你输入一句话,这句话所表示的意思,本来在数据库中有,但你必然查不出来.

所以含有每个字符串的设计不合理.

其次,你应该在存储时对数据进行处理.这样便于检索.

 

[秦时明月] | 园豆:598 (小虾三级) | 2014-01-22 17:24

我接手这个项目的时候这个数据库已经设计成这样了,如果现在修改字段,三十万的数据量修改起来工作量太大,所以只能用现在这种查询

支持(0) 反对(0) 147258 | 园豆:130 (初学一级) | 2014-01-22 18:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册