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秒 求各路大神各抒己见!!!
[解决办法]
我已经做过实验,发现locate与like几乎同样的慢。 这里因为涉及到多列,不如派生一个冗余列,只用一个like。