请教一条SQL优化

chinastorm 2011-12-09 04:56:34
大家好,我原来的一条语句:
select * from [T_user]
where classID='7066cb2fbb327377' and classNumID='5e08f3ac9efe64a1'
And ( phoneNum='310--' or phoneNum='-100-'
or phoneNum='--001' or phoneNum='31---'
or phoneNum='---01' or phoneNum='3----'
or phoneNum='-1---' or phoneNum='--0--'
or phoneNum='---0-' or phoneNum='----1' )
但是数据多了以后速度非常慢,请问怎么优化呀?
...全文
150 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
nvd11 2011-12-10
  • 打赏
  • 举报
回复
我也觉得没什么好优化的~
q465897859 2011-12-09
  • 打赏
  • 举报
回复
phoneNum in (..........)
或用union all
在加索引(classID,classNumID)
EVAN_QIN 2011-12-09
  • 打赏
  • 举报
回复
改变设计吧:加个字段,说明该条记录属于哪类,比如你上面的 phoneNum='310--' or phoneNum='-100-'
or phoneNum='--001' or phoneNum='31---'
or phoneNum='---01' or phoneNum='3----'
or phoneNum='-1---' or phoneNum='--0--'
or phoneNum='---0-' or phoneNum='----1'
归为1类,然后只对此字段进行统计即可
chinastorm 2011-12-09
  • 打赏
  • 举报
回复
请问除了加索引是不是没有别的办法了?
加了索引,数据量大了查询结果还是非常慢
--小F-- 2011-12-09
  • 打赏
  • 举报
回复
晕 全部是OR 怎么搞?
写成UNION ALL
还是 IN?
都是差不多的
pengxuan 2011-12-09
  • 打赏
  • 举报
回复
加索引吧
昵称被占用了 2011-12-09
  • 打赏
  • 举报
回复
(classID,classNumID)增加索引
geniuswjt 2011-12-09
  • 打赏
  • 举报
回复
没啥好优化的,撑死把or改成in
或者 phoneNum的所有需要的值造个表,然后连接两表查询

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧