如题!
我有个文章分类表,大概1W的数据库
为了查询子分类,class_list 数据格式为:,47,55,58,
查询时用 like '%,47,%' 速度很慢,大概需要2秒时间!
请问有何办法解决查询速度过慢的情况。
烦请详细一点! 万谢!
有没有在class_list字段上建立索引?
建立个什么类型的索引比较合适?
like方式查询 迭代子类
这两种方法哪种要更快一点
@PKSEO_dudu:
对于这样的Like查询,索引效果并不明显,详见like语句百分号前置会使用到索引吗?
@PKSEO_dudu:
如果用另外一张表存放文章ID与了分类ID的关联,会比用Like快很多
@dudu: 是一张表里面,不涉及到联合查询。
就算建立一个非聚集索引,性能是否会有很大的提升?
@PKSEO_dudu:
对于%开头的Like查询,不会有大的提升,更别说很大的提升。
如果你一定要用Like,建议你试试建立全文索引。
@dudu: 如果我不用模糊查询,而选择递归子类
这样就是会多次查询,性能是不是要优一些?
您在处理这方面的问题时,一般选择什么方法?
@PKSEO_dudu:
channel_id:6,category_id:47,耗时:13.0985,条件:is_lock=0 and img_url<>''
channel_id:6,category_id:47,耗时:283.1577,条件:is_lock=0 and img_url=''
还有个问题请教一下
同一个表的查询,img_url 不为空,和为空的查询,耗时相差这么多?
有没有办法减少耗时?
@PKSEO_dudu:
建议根据执行计划,优化索引与查询语句
@dudu: 执行计划??
您指的是使用存储过程?
@PKSEO_dudu:
推荐阅读:SQL Server 执行计划
对于 这种较长字符也可以考虑用全文检索,毕竟索引对于过长的字符内容维护与检索都比较耗时