欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

count之偏题

更新时间: 2014-01-05 02:22:55 责任编辑: Author_N1

 

count之难题
select                     count(0)                  from                     CRM_CUSTOMER a                    
where                     a.IS_DEL = 0                  and     a.IS_TRASH = 0         
and                 
(       
    (a.CUSTOMER_NAME like '%艾%') 
    or (a.CUSTOMER_NAME_PINYIN like '%艾%') 
    or (a.CUSTOMER_NO = '艾')    
    or (a.ID_CARD like '%艾%')    
    or (a.COMPANY like '%艾%')    
    or (a.MOBILE_PHONE1 like '%艾%')    
    or (a.MOBILE_PHONE2 like '%艾%')    
    or (a.PHONE like '%艾%')    
    or (a.FAX like '%艾%')      
)  
注a表有400w数据,like的字段有组合索引,主键有索引,a.IS_DEL和a.IS_TRASH有索引
性能好慢20秒 求各路大神各抒己见!!!
--参考方法--
引用:
select count(1) from CRM_CUSTOMER a                    
where      
(a.CUSTOMER_NAME like '%艾%') 

CUSTOMER_NAME有单独索引 就这句sql也是快的
你是想说 locate比like要快吗?我试过后 性能是差不多的 也有的人说用函数会更慢~~~ 


我已经做过实验,发现locate与like几乎同样的慢。 这里因为涉及到多列,不如派生一个冗余列,只用一个like。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:22:55
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/9098/
本文WWW.DOC100.NET DOC100.NET版权所有。